在scrollview中添加多个视图

时间:2011-08-17 18:49:28

标签: objective-c view subview addsubview

我有一个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

我已将View(Interface Builder)与* 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];它会告诉我:

enter image description here

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

3 个答案:

答案 0 :(得分:1)

你可以像往常一样简单地添加:

[self.myScroller addSubview:mytextview];

设置textviews框架后。或者你的意思是什么?

你必须在你的循环中计算框架,所以每个视图都会添加到下一个视图下方,如果这就是你的意思......

最好的, 马库斯

答案 1 :(得分:0)

使用addSubview:

[self.scrollView addSubview:myNewView];

答案 2 :(得分: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];


}

效果很好。