0

我有一个 ScrollView,它会充满很多视图。

我的视图有背景,并且会收到动态数量的按钮。

我需要在我的 ScrollView 上添加这些视图。

每个视图都将放置在前一个视图的下方。我的观点有 1024 x 197

我要这样做吗?

提前感谢您的帮助。

更多细节

我在 Interface Builder 上创建了视图(我需要重复的那个)

@interface PortalBookViewController : UIViewController {
    UIView *prateleira;
    UIScrollView *ScrollView;
}

@property (nonatomic, retain) IBOutlet UIScrollView *ScrollView;
@property (nonatomic, retain) IBOutlet UIView *prateleira;

@end

我已将该视图(界面生成器)与 *prateleira

- (void)viewDidLoad {
    [super viewDidLoad];


    for (int i = 0; i < 4; i++) {
        switch (i) {
            case 0:
                prateleira = [prateleira initWithFrame:CGRectMake(0, 0, 1024, 197)];
                [ScrollView addSubview:prateleira];
                [prateleira release];
                break;
            case 1:
                prateleira = [prateleira initWithFrame:CGRectMake(0, 198, 1024, 197)];
                [ScrollView addSubview:prateleira];
                [prateleira release];
                break;
            case 2:
                prateleira = [prateleira initWithFrame:CGRectMake(0, 384, 1024, 197)];
                [ScrollView addSubview:prateleira];
                [prateleira release];
                break;
                break;
            case 3:
                prateleira = [prateleira initWithFrame:CGRectMake(0, 582, 1024, 197)];
                [ScrollView addSubview:prateleira];
                [prateleira release];
                break;
                break;
            default:
                break;
        }
    }

    [ScrollView release];


}

模式详情

如果我这样做:[self.ScrollView addSubview:prateleira];它会告诉我:

在此处输入图像描述

我认为问题在于设置视图位置。

4

3 回答 3

1

你像往常一样简单地添加这些:

[self.myScroller addSubview:mytextview];

设置 textviews 框架后。还是你的意思是别的?

您必须计算循环中的框架,因此每个视图都添加到下一个视图下方,如果这就是您的意思...

最好的,马库斯

于 2011-08-17T18:55:26.240 回答
0

解决方案是创建一个 uiview 对象,例如:

UIView * shelf_view (NSInteger x, NSInteger y) {

    UIView *shelf = [[UIView alloc] initWithFrame:CGRectMake(x, y, 1024, 197)];
    UIImageView *background = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"shelf.png"]];
    [shelf addSubview:background];
    return shelf;

}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {

    for (int i = 0; i < 4; i++) {
        switch (i) {
            case 0:
                [ScrollView addSubview: shelf_view(0, 0)];
                break;
            case 1:
                [ScrollView addSubview: shelf_view(0, 197)];
                break;
            case 2:
                [ScrollView addSubview: shelf_view(0, 512)];
                break;
            case 3:
                [ScrollView addSubview: shelf_view(0, 777)];
                break;
            default:
                break;
        }
    }
    [super viewDidLoad];
    [ScrollView release];


}

它完美地工作。

于 2011-08-17T20:32:32.630 回答
0

使用 addSubview:

[self.scrollView addSubview:myNewView];
于 2011-08-17T18:53:15.990 回答