-1

他の言語では、次のようなことができます。

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);
4

1 に答える 1