UITableView / UITableViewCell挑战与iOS7上的iPad的透明背景
昨天晚上,我决定升级到Xcode 5,并看看我目前的项目。 更新我的故事板到新的UI后,一切看起来不错,运行良好。 因为我有一个通用的二进制文件,所以我决定在iPad上testing一些东西,并注意到一个新的白色背景已经引入到我的UITableview中,曾经是透明/清晰的颜色。 这似乎发生在单元级而不是表级。 当我在6.1模拟器上运行的东西时,iPad和iPhone上的一切看起来都很好。 一切看起来很好iOS7的iPhone。
我为iPhone和iPad设置的所有界面生成器都是相同的。 从我可以告诉它与这个新的“内容视图”(这是项目单元的子组)不涉及透明的值/设置有关。
任何想法/想法?
在用接口生成器浪费了好几个小时之后,我想这里可能有一个bug。 所以我开始寻找一个程序化的答案。 显然我从这里开始可以节省很多时间。 通过添加到该方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我可以通过添加这一行来解决iPad上的透明度问题:
cell.backgroundColor = [UIColor clearColor]; // Adding this fixes the issue for iPad
希望这可以帮助其他人看到与iPad和iOS7的iPad的白色背景!
如果您使用自定义的UITableViewCell并从storyboard / xib调用它,则可以使用以下代码。
@implementation YourCustomTableViewCell - (void) awakeFromNib { self.backgroundColor = [UIColor clearColor]; }
如果其他人仍然在iPad上的表格视图/单元格透明度有问题,这可能会有所帮助(从https://stackoverflow.com/a/31396483/2301213复制,这是迅速,因为他们是一个changin');
看来在向窗口添加UITableView的过程中(在willMoveToWindow和didMoveToWindow之间),某些iPad将表视图的backgroundColor重置为白色。 它隐式地执行此操作,而不使用backgroundColor属性。
我现在使用这个作为基类代替UITableView时,我需要一个彩色/透明表…
class ColorableTableView : UITableView { var _backgroundColor:UIColor? override var backgroundColor:UIColor? { didSet { _backgroundColor = backgroundColor } } override func didMoveToWindow() { backgroundColor = _backgroundColor super.didMoveToWindow() } }
单元格的backgroundColor在我的iPad上以相同的方式设置为白色(即在移动到窗口期间在桌子上的那些),所以这同样适用于它们,以免最终导致出现奇怪的不透明单元格随时重复使用
class ColorableTableViewCell : UITableViewCell { var _backgroundColor:UIColor? override var backgroundColor:UIColor? { didSet { _backgroundColor = backgroundColor } } override func didMoveToWindow() { backgroundColor = _backgroundColor super.didMoveToWindow() } }
如果您正在使用静态单元格表格。 你可以做到以下几点:
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { cell.backgroundColor = UIColor.clearColor() }
- 如何删除警告“运行时button的框架将有所不同”。
- iOS 7dynamic模糊效果,就像控制中心一样
- 还原iOS7以前的UINavigationController pushViewControlleranimation
- performFetchWithCompletionHandler永远不会被解雇
- 在更新到1.11.0之后,自动完成要求您在iOS中点击两次
- iOS 7 Safari:当点击/关注HTMLinput时,OSlocking4秒钟
- iOS 7状态栏中的MFMailComposeViewController是黑色的
- 更改UISearchBar上的光标颜色而不更改tintColor
- 在iOS中的GMSMapView上绘制两个地方之间的路线