1

所以我用大量从 iOS 4.3 开始的 UITableView 制作了这个应用程序。

在过去的一周里,我将我的 iPhone 更新到了 iOS7.0,当我运行我的应用程序(目前正在再次开发)时,我的 UITableView 背景变成了白色,而不是以前使用的 clearcolor。

所以我搜索了谷歌并得出结论,我们现在应该在细胞水平上做这种颜色。就像在这个问题中一样: UITableView clear background

我已经尝试过了,它工作正常。然而,当我试图向我的共同开发人员解释这种差异时,我无法找出一个奇怪的行为。

在开发过程中,我们使用 testflight 上传多个可测试版本,以便我们可以调试和跟踪项目。在这次谈话中,我的一位合作开发者从 testflight 下载了与我将 mac 更新到 MountainLion、iOS 7.0 和 xCode5.0 之前上传的完全相同的应用程序。而当他在 iOS7.0 的 iPhone 上运行它时,UITableView 背景是清晰的!

我的问题是:

早于我的最新版本并上传到 testflight 的版本(当我运行 Lion 时,xCode 4.5)如何在具有 iOS 7.0 的同一 iPhone 设备上以不同方式运行,然后是我当前编译的版本(来自 MountainLion,xCode 5.0)?

这对我来说没有意义。有谁知道为什么这两个版本的工作方式彼此不同?还是我只是疯了?

4

3 回答 3

1

我确实在我的应用程序中发现了与此行为类似的东西。

应用程序(具有完全相同的代码)在 iOS 7 设备中的执行方式,根据 Xcode 版本和 iOS SDK 的不同而不同)它被编译。我的意思是,仅当您使用 XCode 5 和 iOS 7 制作您的应用程序时,才会出现 uitableview 背景的更改行为。使用旧的 Xcode 只是保持旧的行为(也许所有实际的应用程序都是向后兼容的)

于 2013-09-23T14:28:15.703 回答
0

只需在您的代码中添加此 UITableViewDataSource 方法即可。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell setBackgroundColor:[UIColor clearColor]]; }

于 2013-11-09T13:33:07.203 回答
0

您是否确保对项目的所有目标都使用旧的 SDK(例如从 SDK 7.0 切换到 SDK 6.1)?执行上述操作使我的表格视图像我预期的那样正确透明。但是,当您使用新的 iOS 7 SDK 构建时,它会使用新代码,这会使几个元素的行为和外观有所不同。

安装旧版本应用程序的同事正在安装使用 iOS 6.1 SDK(或者可能是旧版 SDK?)构建的应用程序,因为它是使用 Xcode 4.5 构建的

它与您用于构建项目的 Xcode 版本无关,而与您在最新版本的 Xcode 中使用的设置有关。如果您没有将 iOS 6.1 SDK 视为基本 SDK 的选择,则必须将其移植或链接到 Xcode 5(在 Stackoverflow.com 上有很多详细说明如何执行此操作的问题)

于 2013-09-23T15:18:49.137 回答