使用UIImageViews的分页UIScrollView仅显示第一个UIImageVIew

时间:2012-09-17 03:35:31

标签: iphone objective-c uiscrollview

我正在处理分页的UIScrollView,但它只想在其中显示第一个UIImageView。我将每个UIImageView添加到滚动视图宽度的偏移处,以便创建每个页面。运行时,它表示滚动视图是正确的页数,但图像不显示。

非常感谢任何帮助!

int numSlides = NUM_TUTORIAL_SLIDES;
    NSString *fileName;
    UIImageView *slideImageView;
    CGRect slideFrame;

    for (int i = 1; i <= numSlides; i++)
    {
        slideFrame.origin.x = self.tutorialScrollView.frame.size.width * (i-1);
        slideFrame.origin.y = 0;
        slideFrame.size = self.tutorialScrollView.frame.size;

        slideImageView = [[UIImageView alloc] initWithFrame:slideFrame];


        if([[AppManager sharedManager] is4inchScreen])
        {
            fileName = [NSString stringWithFormat:@"Slide%d4in@2x.png", i];
        }

        else
        {
            fileName = [NSString stringWithFormat:@"Slide%d@2x.png", i];
        }

        slideImageView.image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileName ofType:nil]];

        [self.tutorialScrollView addSubview:slideImageView];

        [slideImageView release];
    }

    self.tutorialScrollView.contentSize = CGSizeMake(self.tutorialScrollView.frame.size.width * numSlides, self.tutorialScrollView.frame.size.height);

    self.tutorialScrollView.delegate = self;

2 个答案:

答案 0 :(得分:1)

也许更改以下代码会有所帮助

    slideImageView.image = [UIImage imageNamed:fileName];

答案 1 :(得分:0)

事实证明,问题与舍入滚动视图的角落有关。

我有这段代码:

//Round header image
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.tutorialScrollView.bounds
                                               byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight)
                                                     cornerRadii:CGSizeMake(DEFAULT_CORNER_RADIUS_HEADER, DEFAULT_CORNER_RADIUS_HEADER)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.path = maskPath.CGPath;
self.tutorialScrollView.layer.mask = maskLayer;

显然会导致滚动视图出现问题