我是 IOS 开发的新手,我的问题是我正在使用 UIScrollView 和 UIPageControl 向用户显示指南信息。我通过设置File's Owner创建了一个与 GuideViewController 相关的xib文件。我设置内容大小并在 xib 文件中静态添加子视图。但是我遇到了一些奇怪的事情,滚动视图只显示屏幕上的第一个子视图,所有后续显示都只是白色背景(当我滚动时)。以下是代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSInteger numberOfPages = 2;
self.pageControl.numberOfPages = numberOfPages;
self.pageControl.currentPage = 0;
self.pageScroll.delegate = self;
self.pageScroll.contentSize = CGSizeMake(self.view.frame.size.width * numberOfPages,
self.view.frame.size.height);
self.pageControl.currentPageIndicatorTintColor = [UIColor redColor];
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat pageWidth = self.view.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth/2) / pageWidth) + 1;
self.pageControl.currentPage = page;
}
我搜索了很多以找到答案,但仍然停留在这里。我也对xcode帮助中的这句话“当用户点击页面控件移动到下一页或上一页时,控件发送UIControlEventValueChanged事件以供委托处理”感到困惑。似乎 UIPageControl 没有委托属性,所以我如何捕获UIControlEventValueChanged事件。
实际上我是在storyboard上开发我的主UI,但是我有点想要单独的UI设计来为storyboard腾出更多的空间,所以我使用xib文件来做其他部分的UI,我不知道这是否会导致一些问题。谢谢