他の言語では、次のようなことができます。
for(int i = 0; i < numObjects; i++)
{
Object obj = new Object();
UI.Display(obj.text = array[i]);
}
そして、テキストが異なる複数のオブジェクトが表示されます。
ただし、ARC をオンにして Xcode 4+ の Objective-C でプログラミングする場合、「新しい」初期化子はありません。だから私が何かをするとき:
for(NSString *s in testArray) {
NSArray nibObjects = [[NSBundle mainBundle] loadNibNamed:@"Page" owner:self options:nil];
UIView subview = [nibObjects lastObject];
... //Add some custom images or text
[scrollView addSubview:subview];
}
私は1つのビューしか取得しません。まだ同じメモリの場所を参照しているためだと思います。これを5つの異なるビューを持つスクロールビューで使用すると、最後のオンのみが機能します。残りは空白です。
スクロールビューでカスタム nib レイアウトを再利用する方法について何か提案はありますか? 追加する数が変化するにつれて、動的である必要があります。
-編集-
結果なしで別の試行
for (int i = 0; i < 4; i++) {
NSArray *nibObjects = [[NSArray alloc]init];
nibObjects = [[NSBundle mainBundle] loadNibNamed:@"Page" owner:self options:nil];
//Move frame location
CGRect frame;
frame.origin.x = scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = scrollView.frame.size;
UIView *subview = [[UIView alloc] initWithFrame:frame];
subview = [nibObjects lastObject];
[scrollView addSubview:subview];
}
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * 4, scrollView.frame.size.height);