我有一个UINavigationController,其中包含用UIView初始化的UIViewController。
UINavigationController也像往常一样有一个UINavigationBar。
以前我使用
在UIView中将新元素定位在0,0CGRectMake(0,0,height,width);
它会将它直接放在UINavigationController下面。但是,自从使用2.2进行编译后,它现在将0,0直接放在UINavigationBar后面(你可以预期0,0正常)。
只有在使用2.2 SDK重新编译应用程序时才会发生这种情况 - 升级之前留在iPhone上的应用程序仍然按预期工作。
事情是,我非常希望我的应用程序能够正确地使用2.2以及向后兼容2.1
有没有人看过这种行为,或者对此有更多了解?
谢谢!
答案 0 :(得分:1)
有一个完整的(非常有用的)线程可以在Apple开发论坛上破坏2.2。它包括这个问题(虽然没有任何修复)。我已经看到它在其他地方也提到了。
值得一试
答案 1 :(得分:0)
看来这种新行为是“预期”行为,这是有道理的。
在2.1 和 2.2中使我的应用程序正确渲染是很遗憾的。
似乎如果我摆弄我的UINavigationBar透明/不透明设置,我会找到一些正确的错误组合,使它在两者中都能正确显示。
会告诉你我的发现。
答案 2 :(得分:0)
从上面的链接主题:
“通过使我的导航栏不透明(以前是半透明的)来修复。我想也许这是一个错误修复,因为这对我来说似乎逻辑上看起来应该出现在半透明的条形图后面。”
所以是的,它似乎是预期的行为。虽然有道理,但还是很糟糕!
答案 3 :(得分:0)
通过执行以下操作,我可以在2.1和2.2中使用UIBarStyleTranslucent进行视图定位:
将viewcontroller的视图设置为我创建的自定义视图。使自定义视图扩展UIScrollView,并在其drawRect方法中绘制黑色背景并将其contentsize设置为视图的大小。
我希望这有助于=)