【发布时间】:2014-11-20 22:32:29
【问题描述】:
我在故事板文件中定义了一个自定义表格视图单元格。
此单元格包含带有几页内容的滚动视图和一个页面指示器。滚动视图、内容视图和单元格本身都使用自动布局定义。 Page1/2/3 视图绑定为与滚动视图具有相同的宽度,并且容器绑定为具有滚动视图的 3 倍宽度。这样,我不确定内容的大小是否完全可以显示三页信息,无论屏幕大小如何。
我在自定义单元格类中有一个代码,用于在滚动视图滚动时更新页面指示器 - 这工作正常。
我还在单元类中公开了该方法以从外部指定页面,并且在这个 setter 中我正在做类似的事情:
- (void)setPage:(NSInteger)page animated:(BOOL)animated
{
CGFloat pageWidth = self.scrollView.frame.size.width;
self.pageControl.currentPage = page;
[self.scrollView setContentOffset:CGPointMake(page*pageWidth, 0) animated:animated];
}
我面临的问题是,当我调用此设置器时,滚动视图框架和内容大小通常没有正确定义,因此会设置页面指示器,但滚动视图不会更改内容偏移量。
我在哪里可以看到我的单元格自动布局已完成并且我可以保证 setContentOffset 会正常工作?我尝试从cellForIndexPath 调用setPage - 这显然不起作用,然后我尝试从willDisplayCell 调用它 - 同样的故事 - 单元格本身已经正确布局,但滚动视图仍然有 600px(来自故事板),它失败了。
【问题讨论】:
-
您是否要显示分页内容?
-
是的。这正是我想要做的
标签: ios objective-c cocoa-touch uitableview autolayout