iOS7.0中UITableView单元格背景的区别
Posted
技术标签:
【中文标题】iOS7.0中UITableView单元格背景的区别【英文标题】:UITableView cell background difference in iOS7.0 【发布时间】:2013-09-23 14:08:01 【问题描述】:所以我用从 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) ?
这对我来说没有意义。 有谁知道为什么这两个版本的工作方式彼此不同? 还是我快疯了?
【问题讨论】:
【参考方案1】:我确实在我的应用程序中发现了与此行为类似的东西。
应用程序(具有完全相同的代码)在 iOS 7 设备中的执行方式,根据 Xcode 版本和 iOS SDK 的不同而不同)它被编译。我的意思是,仅当您使用 XCode 5 和 iOS 7 制作您的应用程序时,才会出现 uitableview 背景的更改行为。使用旧的 Xcode 只是保持旧的行为(也许所有实际的应用程序都是向后兼容的)
【讨论】:
所以你说是旧 xCode 的编译器产生了这种奇怪的行为,而不是我可以控制的任何东西?【参考方案2】:您是否确保对项目的所有目标都使用旧的 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(在 ***.com 上有很多详细说明如何执行此操作的问题)
【讨论】:
【参考方案3】:只需在你的代码中添加这个 UITableViewDataSource 方法。
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
[cell setBackgroundColor:[UIColor clearColor]];
【讨论】:
以上是关于iOS7.0中UITableView单元格背景的区别的主要内容,如果未能解决你的问题,请参考以下文章
多选模式下的 UITableView 删除选定单元格中所有子视图的背景颜色