以编程方式创建UITextField时出现问题iphone
当我尝试以编程方式创建11个文本字段时,我很挣扎。问题是文本字段不显示。我在viewDidLoad
方法中创建它们。以编程方式创建UITextField时出现问题iphone
下面是我使用的代码:
- (void)viewDidLoad
{
// Determine some basic info
int numberOfTextfields = 11;
int textfieldHeight = 40;
int textfieldWidth = 200;
// Create the UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, numberOfTextfields*textfieldHeight,textfieldWidth)];
// Create all the textfields
NSMutableArray *textfields = [NSMutableArray arrayWithCapacity:
(NSUInteger)numberOfTextfields];
for(int i = 0; i < numberOfTextfields; i++) {
UITextField *field = [[UITextField alloc] initWithFrame:
CGRectMake(0,i*textfieldHeight,textfieldHeight,textfieldWidth)];
[scrollView addSubview:field];
[textfields addObject:field];
}
[super viewDidLoad];
}
他们为什么不显示任何线索?
在此先感谢。
你似乎永远不会添加scrollView
作为子视图。
您的textFields已被隐藏,因为您从未设置过边框样式。试试这个:
- (void)viewDidLoad
{
// Determine some basic info
int numberOfTextfields = 11;
int textfieldHeight = 40;
int textfieldWidth = 200;
// Create the UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, textfieldWidth,numberOfTextfields*textfieldHeight)];
scrollView.contentSize = CGSizeMake(numberOfTextfields*textfieldWidth, textfieldHeight);
// Create all the textfields
NSMutableArray *textfields = [NSMutableArray arrayWithCapacity:
(NSUInteger)numberOfTextfields];
for(int i = 0; i < numberOfTextfields; i++) {
UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(0,i*textfieldHeight,textfieldWidth,textfieldHeight)];
field.borderStyle = UITextBorderStyleRoundedRect;
[scrollView addSubview:field];
[textfields addObject:field];
}
[self.view addSubview:scrollView];
[super viewDidLoad];
}
我试过[self.view addSubview:scrollView];但它不起作用,这就是为什么我从代码中删除它。 – madcoderz 2011-06-16 12:03:15
边框风格...好的谢谢。一个问题:我怎样才能将文本字段与海誓山盟分开? – madcoderz 2011-06-16 12:30:10
只需添加一些填充。当你创建'UITextField'时,执行以下操作:'UITextField * field = [[UITextField alloc] initWithFrame:CGRectMake(0,i * textfieldHeight + 10,textfieldWidth,textfieldHeight)];'。一定要适当增加滚动视图的'contentSize'。 – 2011-06-16 13:01:14
您需要添加UIScrollView
到您的视图和设置其内容区域,因为它不会自动地管理它(你可能已经预期)。
您需要将您的滚动视图添加到您的视图控制器。如果它被分配,
别的为此 self.view = [[UIView alloc] initWithFrame:CGRectMake (0,0,320,460)]
在端[self.view addSubview: scrollView]
检查这代码.....帧参数是(X,Y,宽度,高度)
int numberOfTextfields = 11;
int textfieldHeight = 40;
int textfieldWidth = 200;
// Create the UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,textfieldWidth,numberOfTextfields*textfieldHeight)];
// Create all the textfields
NSMutableArray *textfields = [NSMutableArray arrayWithCapacity:
(NSUInteger)numberOfTextfields];
for(int i = 0; i < numberOfTextfields; i++) {
UITextField *field = [[UITextField alloc] initWithFrame:
CGRectMake(0,i*textfieldHeight,textfieldWidth,textfieldHeight)];
field.borderStyle=UITextBorderStyleRoundedRect;
[scrollView addSubview:field];
[textfields addObject:field];
}
[self.view addSubview:scrollView];
[super viewDidLoad];
尝试下面的代码。文本框被添加,您可以滚动文本框。
int numberOfTextfields = 11;
int textfieldHeight = 40;
int textfieldWidth = 200;
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,textfieldWidth,numberOfTextfields*textfieldHeight)]; scrollView.contentSize = CGSizeMake(textfieldWidth, numberOfTextfields*textfieldWidth+10);
NSMutableArray *textfields = [NSMutableArray arrayWithCapacity: (NSUInteger)numberOfTextfields];
for(int i = 1; i < numberOfTextfields; i++) { UITextField *field = [[UITextField alloc] initWithFrame: CGRectMake(0,i*textfieldHeight,textfieldWidth,textfieldHeight)]; field.borderStyle=UITextBorderStyleRoundedRect; [scrollView addSubview:field]; [textfields addObject:field]; }
[self.view addSubview:scrollView]; [super viewDidLoad];
你在哪里把scrollview本身? – 2011-06-16 12:07:23