如何在单个视图中创建超过40-50个文本字段和标签,何时选择键入的文本字段不应隐藏文本字段?
答案 0 :(得分:1)
您可能希望以编程方式创建它们 - 使用Interface Builder制作40-50个文本字段非常耗时。
对于键盘,您可以使主UIView可滚动,然后每当显示键盘时,检查选择了哪个文本字段并将其滚动到屏幕的上半部分。 (如果您的应用程序是可旋转的,请确保“屏幕的上半部分”根据您的方向更改定义。)
这个想法的一些示例代码:
// Determine some basic info
int numberOfTextfields = 50;
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];
}
在这段代码中,我们首先设置一些变量来确定文本字段的行为(它们的位置,外观和数字),然后创建主UIScrollView。完成后,我们创建了一堆具有前面指定尺寸的UITextField,同时将它们添加为scrollview的子视图,并将它们保存在一个数组中供以后参考(如果需要)。
稍后,您将要覆盖UITextFields的becomeFirstResponder:
方法(可能是UITextField的子类),这样每当文本字段成为第一个响应者并显示键盘时,它会调用setContentOffset:animated:
scrollview显示自己。