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 の contentsize を計算します) が、それでも私の解決策は次のとおりです。

をタスクに使用しUIScrollViewます。実際、それを使用するのはかなり簡単です。

最初UIScrollViewに、画面のどこかを初期化して表示する必要があります。あなたが にいて、とUIViewControllerのスクロール ビューを作成したいとします。このために、次のことができます。300px width200px height

UIScrollView *aScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 300, 200)];
[[self view] addSubview:aScrollView];
[aScrollView setScrollEnabled:YES];

今度は、その中にコンテンツを配置します。ここで考慮すべき重要なアイデアは次のとおりです。「UIScrollView」にはそれ自体のサイズがありますが、コンテンツの内部サイズもあり、これは基本的にスクロール可能な領域です。それぞれのサイズが「幅 40px」、「高さ 200px」の 20 個のアイテムがあるとします。また、各テキスト ボックスの間に 10px のスペースを残したいと思うでしょう。したがって、「UIScrollView」内に含める領域のスクロール可能な幅の合計は次のようになります: (20 (アイテム) * (40 (各アイテムのサイズ) + 10 (各アイテム間の距離)))) -10。次に、次のことを行います。

[aScrollView setContentSize:CGSizeMake((20*(40 + 10))-10), 200];

よし、もうすぐ完成だ。あとは、各テキスト項目をスクロール ビューに追加するだけです。1 つずつ行うのではなく、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 に答える