代码之家  ›  专栏  ›  技术社区  ›  M. Ryan

uipagecontrol使用uiscrollview呈现怪癖

  •  1
  • M. Ryan  · 技术社区  · 15 年前

    我正在构建一个iPhone应用程序,和大多数应用程序一样,我正在尝试使用uipagecontrol实现uiscrollview,但是我遇到了一个非常奇怪的行为,我认为这可能是一个bug。希望你们中的一个以前见过这个,因为它让我抓狂了。

    基本上,页面控件工作正常,除了在uiview中放置uipagecontrol的某些位置外,所有帐户上的所有内容都已连接并正常工作,uipagecontrol将停止呈现。

    我只需要拍摄XIB窗口的屏幕截图来帮助说明…这是一个非常好的位置:

    http://www.jasconi.us/prob1.png

    uipageControl实际放置在uiscrollView的上方。工作得很好,一切都是可见的和有效的。

    接下来的两个不起作用:

    http://www.jasconi.us/prob2.png http://www.jasconi.us/prob3.png

    第一个简单地放在滚动视图下面。根本不渲染。

    第二个放置在滚动视图的上方,技术上不在滚动视图的内部。也不会渲染。

    这到底是怎么回事?我试过用

    [[self view] bringSubviewToFront:pageControl];
    

    ……毫无用处。

    有什么想法吗?

    4 回复  |  直到 12 年前
        1
  •  2
  •   M. Ryan    15 年前

    好的,我找到了答案,是凯文·培根的六度角。

    这实际上不是一个软件错误,而是一个XIB的怪癖,出于某种原因,页面控件的较低位置与自动调整大小和定位的默认设置相结合似乎会将控件丢弃到外层空间中。

    如果关闭所有自动缩放、自动调整大小和自动锚定以及所有其他垃圾,控件将完全按预期显示。当它被放置在滚动视图上方时,它会可靠地出现,这是一个奇怪的事实。

    耸肩 .

    希望这能帮助未来的iPhone启动。

        2
  •  0
  •   jessecurry    15 年前

    您是否检查过确保NumberOfPages不是0?

    如果设置断点,是否可以看到pagecontrol不是nil?

        3
  •  0
  •   Joe    13 年前

    即使在尝试了所有人发布的答案之后,我仍然遇到了同样的问题。我的问题最终变得更加“多哈”:

    我在模式表单的底部使用了uipagecontrol,但是我忘记了在XIB中将视图的大小设置为表单。这导致我的页面控件离开屏幕,永远不可见。

    道德:在基础视图的XIB中设置视图大小(完整、窗体、页面等)。

        4
  •  0
  •   atxe AlianaWolf    12 年前

    这听起来真的很简单,但我被它吸引住了。

    默认情况下, UIPageControl 希望是在黑暗的背景下。IE:当前页面的点是浅灰色和白色。

    我用过 分页控件 它本身没有滚动视图来更改我绘制的图形的时间范围 drawRect:

    长话短说,图形背景是白色的,所以页面控制器工作,我只是看不到它。解决方案是将图形本身放入子视图,并使包含页面控件的父级具有深色背景。