2009-11-04 121 views
1

我正在构建一个iPhone应用程序,并且像大多数我试图用UIPageControl实现UIScrollView,但是我遇到了一个非常古怪的行为,我认为这可能是一个错误。希望你之前见过这个,因为这会让我疯狂。UIPageControl渲染与UIScrollView怪癖

基本上,页面控制工作正常,一切都挂钩,并在所有帐户正常工作除了UIPageControl内的某些位置的UIView,UIPageControl将停止呈现。

我只是把厦门国际银行窗口的截图,以帮助说明......下面是工作完全正常放置:

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

的UIPageControl被放置在UIScrollView的身体上面。伟大的作品,一切都是可见的和工作。

接下来的两个不起作用:

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

第一种是简单地放置滚动视图的下方。根本不渲染。

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

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

[[self view] bringSubviewToFront:pageControl]; 

...无济于事。

任何想法?

回答

2

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

这实际上不是一个软件错误,而是一个XIB怪癖,由于某种原因,在与自动调整大小和固定的默认设置组合的页面控制的较低位置似乎抛弃控制太空。

如果关闭所有自动缩放和自动调整大小和自动锚定以及所有其他垃圾,则控件将完全按照您的预期显示。当它放置在ScrollView上方时,它的出现是可靠的,这很奇怪。

耸肩

希望这有助于未来的iPhone启动。

+0

你能解释一下你改变了什么吗?我有这个相同的问题 - 出现在IB,但从来没有在模拟器。我已经尝试过所有缩放,大小调整和锚点组合。 任何帮助将不胜感激:-) – 2010-06-19 20:58:21

+0

看起来像我的问题是把控制在白色背景!似乎选中的点是白色的,其他点是白色的,并且颜色较低,因此在白色背景下,它们都不可见! – 2010-06-19 21:01:15

+0

哈哈,我的朋友很棒。两个默认的自动大小掩码是左侧和顶部。我把它们关闭了,它开始出现......好的东西我的应用程序只是肖像,如果我在做风景,我觉得我可能需要其中的一个或多个。 – casey 2011-06-30 04:08:16

0

您是否确认numberOfPages不是0?

如果你设置了一个断点,你能看到pageControl不是零吗?

+0

页面在代码中设置,并且始终大于0,它不是零,因为我可以在代码中引用它并且处理它中的值。我只是不能*看到*它。 – 2009-11-05 01:27:26

0

这听起来像是一个真正的无脑,但我抓住了它。

默认情况下,UIPageControl预计在黑色背景上。 IE:点是浅灰色,当前页面是白色。

我用它自己的UIPageControl没有滚动视图改变图形的时间范围,我与渲染drawRect:

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

0

即使在尝试每个人发布的答案之后,我仍然遇到了完全相同的问题。我的问题结束了多一点“DOH”:

我在一个模式FormSheet的底部使用UIPageControl,但是,我忘了将视图的大小设置为xib中的表单表单。这导致我的页面控制不在屏幕上,也不可见。

道德:在基本视图的xib中设置视图大小(完整,窗体,页面等)。