1

ちょっとした初心者の問題だと思います...画像とラベルがサブビューとしてプログラムで追加される動的スクロールビューを作成しました。問題は、サブビューとして追加している最後のものだけが表示されていることです。また、「addSubview:」について読むと、「レシーバーのサブビュー リストの最後にビューを追加します」と書かれています。これは、最後に追加されたサブビューのみが表示されることを意味しますか? その場合、両方を表示するにはどうすればよいですか?

前もってありがとう、トム

コード:

for(int i = 0; i < [famorableArray count]; i++){

    UIButton *famorableButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [famorableButton setFrame:CGRectMake(0.0f, 5.0f, 57.0f, 57.0f)];
    [famorableButton setImage:personLogo forState:UIControlStateNormal]; 

    NSString *famString = [NSString stringWithFormat:@"%@", [[[famorableArray objectAtIndex:i] substringFromIndex:8] capitalizedString]];
    NSLog(@"%@", famString);
    UILabel *famLabel = [[UILabel alloc] initWithFrame:CGRectZero];
    famLabel.text = famString;
    NSLog(@"Test2 %@", famLabel.text);

    // Move the buttons position in the x-demension (horizontal).
    CGRect btnRect = famorableButton.frame;
    btnRect.origin.x = totalButtonWidth;
    [famorableButton setFrame:btnRect];

    CGRect labelRect = famLabel.frame;
    labelRect.origin.x = totalButtonWidth + 28.5f;
    [famLabel setFrame:btnRect];


    // Add the button to the scrollview
    [famScroll addSubview:famLabel];
    [famScroll addSubview:famorableButton];

    // Add the width of the button to the total width.
    totalButtonWidth += famorableButton.frame.size.width + 30;

}
[famScroll setContentSize:CGSizeMake(totalButtonWidth, 79.0f)];
4

2 に答える 2

1

追加されたサブビューごとに、frameプロパティを設定する必要があります。フレームは、スーパービューでのビューの位置です。「サブビューのリストへの追加」は、自動レイアウトを意味するものではありません。したがって、すべてのサブビューが表示されていますが、重複していると思います。

于 2012-07-28T16:13:29.900 に答える
0

やばい… コピペ後の編集失敗でした。誤って btnRect をラベルのフレームとしても使用しました。とにかくあなたの努力をありがとう @Martin :)

于 2012-08-04T13:24:41.980 に答える