0

我正在尝试创建一个滚动视图并向其添加 2 个 xib 屏幕(SVPage1.xib 和 SVPage2.xib),以便我可以翻阅两个屏幕。

我创建了滚动视图和页面控制对象。

这就是我在 .m 文件中的内容:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"SVPage1" owner:self options:nil];
    UIView *mainView = [subviewArray objectAtIndex:0];
    [self.scrollView addSubview:mainView];

    CGRect frame;
    frame.origin.x = self.scrollView.frame.size.width * 2;
    frame.origin.y = 0;
    frame.size = self.scrollView.frame.size;

    NSArray *subviewArray2 = [[NSBundle mainBundle] loadNibNamed:@"SVPage2" owner:self options:nil];
    UIView *mainView2 = [subviewArray2 objectAtIndex:0];
    [self.scrollView addSubview:mainView2];

    //Set the content size of our scrollview according to the total width of our imageView objects.
    scrollView.contentSize = CGSizeMake(mainView.frame.size.width * 3, mainView2.frame.size.height);
}

#pragma mark - UIScrollView Delegate
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
    // Update the page when more than 50% of the previous/next page is visible
    CGFloat pageWidth = self.scrollView.frame.size.width;
    int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    self.pageControl.currentPage = page;
}

我相信当我加载第二个 xib 文件时,我会在第一个文件上加载它。

当我运行程序时,我在屏幕上看到第二个 xib 文件,当我翻阅其他页面时,它们是空白的。我想我在尝试添加第二个 .xib 时做错了什么......

有任何想法吗?

4

1 回答 1

1

基本上,当您创建视图时,它的原点设置为 (0, 0)。我认为您只是忘记将第二个视图框架的原点设置为您的变量

mainView2.frame = frame;
于 2013-05-10T04:19:05.733 回答