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 点不起作用

UIPageController 中的 UIViewController 如何获取触摸事件?

如何在项目中实现 UIPageController

导航栏在 UIPageController 下无法正常工作?

iOS / Swift 3:UIPageController 中的 UIView 太大