在发布模式下运行时,拇指查看器中出现奇怪的three20图形错误

时间:2012-01-25 20:36:04

标签: iphone ios three20

我刚刚遇到了three20拇指浏览器最奇怪的问题。

在调试中运行时,我的TTThumbsViewController完全正常工作,但如果我切换到发布模式(ad-hoc和实时应用商店版本上的),我会觉得很奇怪图形故障。

例如,拇指控制器的加载视图:

http://img.skitch.com/20120125-kugx5diqbs8sttnxatrppf4rjg.jpg

然后我的所有缩略图都被压扁了:

http://img.skitch.com/20120125-mi3mpkr1j1s9f79fdf9r3krjhs.jpg

我正在运行最新(主)版本的three20,并且只对源进行了一次轻微修改,以阻止标题栏出现在图库视图的顶部。

我在TTTableViewDelegate.m中添加了以下方法:

- (float)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 0; // disable headers in TTTableViews - prevents header on thumbs view in iOS 5
}

总结:

  • 任何人都可以复制(发布)吗?
  • 我该怎么办?
  • 我所做的修改是否会导致这些问题(请记住它只发生在发布版本中)?

如果有人有任何想法会很好,因为它现在在应用程序商店中存在(我知道我是一个不通过发布测试的白痴 - 这应该教我)。

2 个答案:

答案 0 :(得分:3)

在iOS 4.2.1上编译armv6设备时,问题在于与Xcode 4.2捆绑在一起的LLVM编译器。

此处描述了问题和解决方案: Strange layout issue on 3GS device with iOS 4.2.1 - Compiled with iOS 5

您需要将-mno-thumb标志添加到armv6的编译器标志中,即

compiler flags screenshot

答案 1 :(得分:1)

在MY PROJECT SETTINGS中设置-mno-thumb的方法对我没有用,但这正是

的问题
  

编译armv6设备时捆绑了Xcode 4.2的LLVM编译器

快速做到这一点的方法是更新一下Three20的 Library.xconfig ,它位于 Three20 / src / Configurations / common 文件夹

找到链接器标志配置的行,并使用-mno-thumb添加行。

// Linker Flags    
OTHER_LDFLAGS           = $(OBJC_LIBRARY)

// We needed this to resolve horrible bug
// When your'e setting value on origin.x and it is applied to origin.y
OTHER_CFLAGS[arch=armv6] = -mno-thumb

利润。