1

我正在尝试使用页面在水平行中显示图像,每页包含 4 个图像,可能由一行的一小段空间隔开或没有空格。当用户水平滚动时,接下来的四个图像将显示在视图的中心。但是使用这段代码:

 UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, screenHeight/4, screenWidth, screenHeight/4)];
    scroll.showsHorizontalScrollIndicator = YES;
    scroll.showsVerticalScrollIndicator=NO;
    scroll.pagingEnabled = YES;
    NSInteger numberOfViews = 3;
    int k=1;
    for (int i = 0; i < numberOfViews; i++) {
        CGFloat xOrigin = i * self.view.frame.size.width;
        UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
        awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 alpha:1];
        [scroll addSubview:awesomeView];
        for (int j=0; j<4; j++) {
            NSString *imageName = [NSString stringWithFormat:@"image%d.png", k];
            UIImage *image = [UIImage imageNamed:imageName];
            UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
            CGRect imageFrame=CGRectMake(0, k*screenHeight/4, screenWidth/5, screenHeight/5);
            imageView.frame=imageFrame;
            [awesomeView addSubview:imageView];
            k++;
        }

图像在第一页视图上垂直显示。此外,看起来垂直滚动正在工作。我错过了什么?

4

1 回答 1

1

在这一行:

CGRect imageFrame=CGRectMake(0, k*screenHeight/4, screenWidth/5, screenHeight/5);

您正在弄乱您的 imageView 框架(在 UIView - awesomeView 内)。

你的k变量是 1,2,3,4

所以我假设你有 4 个垂直的图像视图,下一个“列”在左边有四个图像,对吧?

你也没有contentSize为你的scrollView任何地方设置,所以你可能看不到第二个“列”

于 2013-11-05T11:35:14.550 回答