簡體   English   中英

啟用分頁的scrollView無法正常工作? (目標C)

[英]scrollView with paging enabled not working properly ? (Objective-C)

我想用三個UIViews創建分頁scrollView。 並且不希望將imageView作為子視圖添加到這些UIViews中。 我無法弄清楚如何計算imageViews的框架。 當我運行不帶imageViews的代碼時,它的工作原理就很好。

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.scrollView.delegate = self;
    self.scrollView.frame = self.view.frame;

    NSArray *colorsArray = [NSArray arrayWithObjects:[UIColor blueColor], [UIColor yellowColor],[UIColor greenColor], nil];

    NSArray *imagesArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"123.png"],[UIImage imageNamed:@"13.png"],[UIImage imageNamed:@"12.png"],nil];

    for (int i = 0; i < colorsArray.count; i++) {
        CGRect frame;
        frame.origin.x = self.view.frame.size.width * i;
        frame.size = self.view.frame.size;

        self.scrollView.pagingEnabled = YES;

        UIView *view = [[UIView alloc] initWithFrame:frame];
        view.backgroundColor = [colorsArray objectAtIndex:i];

        UIImageView *imageView = [[UIImageView alloc] initWithFrame:view.frame];
        imageView.contentMode = UIViewContentModeScaleAspectFit;
        imageView.image = [imagesArray objectAtIndex:i];
        [view addSubview:imageView];

        [self.scrollView addSubview:view];

    }

    self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width * colorsArray.count, self.scrollView.frame.size.height);

    self.pageControl.numberOfPages = 3;
    self.pageControl.currentPage = 0;
}


- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat pageWidth = CGRectGetWidth(self.scrollView.bounds);
    CGFloat pageFraction = self.scrollView.contentOffset.x / pageWidth;
    self.pageControl.currentPage = roundf(pageFraction);
}

圖像視圖的框架必須相對於其超級視圖(即視圖),而不是滾動視圖。 要實現分頁,您需要更改:

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:view.frame];

至:

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, view.frame.size.width, view.frame.size.height)];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM