iPhone - 安装固件2.2导致了奇怪的显示行为

时间:2008-12-11 16:15:02

标签: iphone

我有一个UINavigationController,其中包含用UIView初始化的UIViewController。

UINavigationController也像往常一样有一个UINavigationBar。

以前我使用

在UIView中将新元素定位在0,0
CGRectMake(0,0,height,width);

它会将它直接放在UINavigationController下面。但是,自从使用2.2进行编译后,它现在将0,0直接放在UINavigationBar后面(你可以预期0,0正常)。

只有在使用2.2 SDK重新编译应用程序时才会发生这种情况 - 升级之前留在iPhone上的应用程序仍然按预期工作。

事情是,我非常希望我的应用程序能够正确地使用2.2以及向后兼容2.1

有没有人看过这种行为,或者对此有更多了解?

谢谢!

4 个答案:

答案 0 :(得分:1)

有一个完整的(非常有用的)线程可以在Apple开发论坛上破坏2.2。它包括这个问题(虽然没有任何修复)。我已经看到它在其他地方也提到了。

值得一试

https://devforums.apple.com/message/12297#12297(已修复链接)

答案 1 :(得分:0)

看来这种新行为是“预期”行为,这是有道理的。

在2.1 2.2中使我的应用程序正确渲染是很遗憾的。

似乎如果我摆弄我的UINavigationBar透明/不透明设置,我会找到一些正确的错误组合,使它在两者中都能正确显示。

会告诉你我的发现。

答案 2 :(得分:0)

从上面的链接主题:

“通过使我的导航栏不透明(以前是半透明的)来修复。我想也许这是一个错误修复,因为这对我来说似乎逻辑上看起来应该出现在半透明的条形图后面。”

所以是的,它似乎是预期的行为。虽然有道理,但还是很糟糕!

答案 3 :(得分:0)

通过执行以下操作,我可以在2.1和2.2中使用UIBarStyleTranslucent进行视图定位:

将viewcontroller的视图设置为我创建的自定义视图。使自定义视图扩展UIScrollView,并在其drawRect方法中绘制黑色背景并将其contentsize设置为视图的大小。

我希望这有助于=)