最近搞了一点 iOS 7 SDK 的适配,来几个作弊条
UITableViewCell 默认有了一个白色背景,我们来去掉它
self.backgroundColor = [UIColor clearColor];
原本
UITableView
是它的contentView
的superView
,现在中间多了一个UITableViewCellScrollView
,而且这个UITableViewCellScrollView
默认clipsToBounds = YES
。这就导致很多(没有正确编写的) UITableViewCell 被截断。先来个 quick fix:self.contentView.superView.clipsToBounds = YES;
不过这仅仅是个 quick fix,真正想修正请正确计算 frame,不要偷懒!
UISearchBar
多了一个searchBarStyle
属性,把它设置成UISearchBarStyleMinimal
然后自己设置背景色:if ([_searchBar respondsToSelector:@selector(setSearchBarStyle:)]) { _searchBar.searchBarStyle = UISearchBarStyleMinimal; _searchBar.backgroundColor = [UIColor whiteColor]; }
UISearchDisplayController
带出来的显示搜索结果的 table view 没有背景,会跟后面的 view 叠起来:- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView { tableView.backgroundColor = [UIColor whiteColor]; }
没有 UINavigationController 的视图中,处理 status bar 的方法:
self.wantsFullScreenLayout = YES;
之后把里面的 view 都下移 20 points。
说实话这个我真没用到:
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { self.edgesForExtendedLayout = UIRectEdgeNone; }
因为我用了
```objc
self.navigationBar.translucent = NO;
```
Apple 对许多属性的默认值做了修改,这应该是有它的意义的,大概是指导设计?我还没有想清楚。
修改的过程中发现除了 Apple 改的那些默认值以外大部分都是历史问题,出来混的,总是要还的。
Comments