我必须水平实现 20 个文本框。当我向左滚动时,如何添加滚动条以查看所有文本框。
2 回答
请尝试以下代码:
UIScrollView *scrlView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
scrlView.scrollEnabled=YES;
int x=5;
int y=5;
for (int i=0;i<20;i++ ) {
UITextField *txtField=[[UITextField alloc] initWithFrame:CGRectMake(x,y , 100,40 )];
txtField.tag=i;
txtField.delegate=self;
[scrlView addSubview:txtField];
x+=105;
}
scrlView.contentSize=CGSizeMake(x, 50);
[self.view addSubview:scrlView];
我希望这段代码对你有帮助。
你可以找到很多关于这个主题的问题(即,计算 scrollview 的内容大小),但这里是我的解决方案:
您想将UIScrollView
用于任务。使用它实际上相当简单。
首先,您需要初始化并显示屏幕中的UIScrollView
某处。我将假设您在UIViewController
, 并且您想要创建300px width
and的滚动视图200px height
。为此,您可以执行以下操作:
UIScrollView *aScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 300, 200)];
[[self view] addSubview:aScrollView];
[aScrollView setScrollEnabled:YES];
现在是时候将内容放入其中了。这里要考虑的关键思想如下。虽然“UIScrollView”本身有大小,但它的内容也有一个内部大小,本质上是可滚动的区域。假设您有 20 个项目,每个项目的大小为“40 像素宽度”和“200 像素高度”。我还将假设您希望在每个文本框之间留出 10 像素的空间。因此,我们希望在“UIScrollView”内拥有的区域的总可滚动宽度如下:(20 (items) * (40 (size of each item) + 10 (distance between each item))) -10。然后我们将执行以下操作:
[aScrollView setContentSize:CGSizeMake((20*(40 + 10))-10), 200];
好吧,我们差不多完成了。现在我们要做的就是将每个文本项添加到滚动视图中。我不会一个一个地做,而是假设您将它们放在一个集合中,例如 a NSArray
(可能是一个NSMutableArray
)。
NSArray *textFields; // the array with the collection of text boxes
int x = 0;
for (UITextField *aTextField in textFields){
[aTextField setFrame:CGRectMake(x, 0, 40, 200)];
[[self view] addSubview:aTextField];
x += 40 + 10; // incrementing the X coordinate to correctly place the next item
}
就是这样!