Iphone 使用iOS 4.2.1的3GS设备上的奇怪布局问题-使用iOS 5编译

Iphone 使用iOS 4.2.1的3GS设备上的奇怪布局问题-使用iOS 5编译,iphone,ios5,three20,Iphone,Ios5,Three20,我们收到一个奇怪的错误报告,来自一个在iPhone3GS上安装了iOS 4.2.1的用户。应用程序中的许多UITextLabel在奇怪的位置偏移。还有其他人遇到过这个问题吗 该应用程序在我们测试过的所有设备上的布局都是正确的,我们只从超过100000名用户中的2名用户那里听说过这个问题 这可能与三种20种风格有关 询问用户他们的设备是否越狱,以及他们的设备上是否安装了字体。 或者你的应用程序有新字体吗 我在mac和iOS上都遇到了完全相同的问题,当时我添加了一种自定义字体来替换系统字体。。

我们收到一个奇怪的错误报告,来自一个在iPhone3GS上安装了iOS 4.2.1的用户。应用程序中的许多UITextLabel在奇怪的位置偏移。还有其他人遇到过这个问题吗

该应用程序在我们测试过的所有设备上的布局都是正确的,我们只从超过100000名用户中的2名用户那里听说过这个问题

这可能与三种20种风格有关


询问用户他们的设备是否越狱,以及他们的设备上是否安装了字体。
或者你的应用程序有新字体吗

我在mac和iOS上都遇到了完全相同的问题,当时我添加了一种自定义字体来替换系统字体。。(这实际上是相同的字体,但操作系统的绘制方式不同)
我们的布局遇到了完全相同的问题。不过,我们没有使用Three20。使用iOS 5.0构建并在iOS 4.2.1上运行时,存在一个已知问题,一旦使用优化的代码,就会导致CGRECT初始化错误。(即使用最快、最小的优化级别编译),因此在调试版本上测试时不会看到它,而调试版本通常将此设置为“无”

有一个解决办法来解决它。您只需为以下内容添加编译器标志:

“其他标签[arch=armv6]”=“-mno thumb”

(可以直接将其添加到项目文件中,也可以从项目的“生成设置”选项卡中添加)

请参阅苹果论坛的帖子,解释完整问题:


你应该在标题和问题的第一行提到三个20,因为这几乎肯定是你问题的根源。还有,你为什么要用像Three20这样的东西?布局TableView其实并不特别困难,使用第三方库(不管是什么)会让您面临这种难以调试的问题。我们可以看看与此TTTableItemCells相关的代码吗?无论是在LayoutSubview还是prepareToReUse功能中,这都可能是一个重用问题。我不认为这是一个重用问题,因为后退按钮文本也是不恰当的,依赖第三方库很烦人,但Three20有一些非常好的功能,如样式文本、图像缓存、照片浏览器、样式按钮等。不管怎样,删除three20需要彻底重写。我们在使用three20的TTLauncherView的iPhone应用程序中报告了类似的问题:类似的问题,类似的明显罕见性。我们将切换到Nimbus,它基本上是从头开始构建的Three20,具有更好的文档,希望问题更少。用户不再响应,所以我不确定越狱是否是问题所在。我已经在应用程序中的反馈电子邮件中添加了越狱检查。谢谢你!非常感谢你!我花了好几个小时的时间试图弄明白为什么在设置帧后,UIView的中心属性会有有趣的值。要明确的是,这与Three20没有任何关系,它是armv6上的4.2.1问题-mno拇指清理了它。再次感谢!非常感谢!有关如何使用ui添加此标志的说明,请参阅:亲爱的用户!你甚至无法想象此刻我有多爱你!感谢用户973793使用Xcode优化问题解决此问题!谢谢你埃蒙恩发布了原始问题!阅读苹果论坛的讨论,这个问题仍然存在于Xcode 4.2.1中,目前只在Xcode 4.3测试版中修复。