水平方向に 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 の contentsize を計算します) が、それでも私の解決策は次のとおりです。
をタスクに使用しUIScrollView
ます。実際、それを使用するのはかなり簡単です。
最初UIScrollView
に、画面のどこかを初期化して表示する必要があります。あなたが にいて、とUIViewController
のスクロール ビューを作成したいとします。このために、次のことができます。300px width
200px 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
}
それでおしまい!