0

我必须水平实现 20 个文本框。当我向左滚动时,如何添加滚动条以查看所有文本框。

4

2 回答 2

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];

我希望这段代码对你有帮助。

于 2013-08-08T08:22:44.700 回答
1

你可以找到很多关于这个主题的问题(即,计算 scrollview 的内容大小),但这里是我的解决方案:

您想将UIScrollView用于任务。使用它实际上相当简单。

首先,您需要初始化并显示屏幕中的UIScrollView某处。我将假设您在UIViewController, 并且您想要创建300px widthand的滚动视图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
}

就是这样!

于 2013-08-08T07:35:12.507 回答