【问题标题】:UIScrollView / Adding xibs to itUIScrollView / 向其中添加 xib
【发布时间】:2013-05-04 16:33:14
【问题描述】:

我正在尝试创建一个滚动视图并向其中添加 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 时做错了什么......

有什么想法吗?

【问题讨论】:

    标签: ios uiview uiscrollview xib


    【解决方案1】:

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

    mainView2.frame = frame;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      相关资源
      最近更新 更多