UIPageController currentPage 顽固地将自身设置为 nib 值
Posted
技术标签:
【中文标题】UIPageController currentPage 顽固地将自身设置为 nib 值【英文标题】:UIPageController currentPage stubbornly sets itself to nib value 【发布时间】:2013-10-24 09:56:31 【问题描述】:我有一个 UIPageController
放在我的 xib 文件中,所以我可以正确放置,但是在 xib 中设置的“currentPage”的值是我尝试将它设置为某物时 currentPage 假定的值否则,如下所示,将我的UIScrollView
设置为从中间开始时正确的初始图像的代码行(即不是第 0 页):
aScrollView.contentOffset = CGPointMake((currentIndex + 0.0) * screenWidth, 0.0);
哪个调用
-(void) scrollViewDidScroll: (UIScrollView*) aScrollView
// Update the page control to match the current scroll:
CGPoint offset = aScrollView.contentOffset;
float width = self.view.frame.size.width;
int pageNumber = (int)(offset.x / width);
uiPageControl.currentPage = pageNumber;
NSLog(@"%g // %g = %d", offset.x, width, (int)(offset.x/width));
pageNumber 整数是正确的,所以我从偏移量中正确计算了所需的页码。但是,当我尝试手动(以编程方式)设置 currentPage 时,它没有设置为 pageNumber,而是设置为 xib 中的值。
简单的解决方案是不使用 xib 并以编程方式完成所有操作,但我想知道如何继续在 xib 中使用 UIPageController
,因为它很容易在不知道坐标等的情况下放置。通常,在 xib 中设置的属性可以通过编程方式覆盖,所以这个错误真的让我感到惊讶。关于如何正确设置 currentPage 的任何建议?
感谢您的帮助!
【问题讨论】:
【参考方案1】:我发现了一个可以暂时解决我的问题的技巧:在 xib 中,我将“页数”值设置为我知道会高于我将拥有的页数的值。
如果这个值太小,事实证明将 currentPage 设置为超出该值不会做任何事情,因为它会限制或将其设置为低于我在 xib 中的页数的某个数字。
如果我将此 xib 属性设置得更高,则设置 currentPage 有效。
抱歉,触发太快了。
【讨论】:
以上是关于UIPageController currentPage 顽固地将自身设置为 nib 值的主要内容,如果未能解决你的问题,请参考以下文章
UIPageController 与 UIPageControl 结合使用?
UIPageController 中的 UIViewController 如何获取触摸事件?