iOS7中,如果用UITableViewStyleGrouped的話,里面的cell會比原來的拉長了,這樣做應該是為了統一和UITableViewStylePlain風格時cell的大小一致,所以改用UITableViewStylePlain后,就沒問題了,而且在iOS7中,使用UITableViewStyleGrouped風格時,上面會出現headView,大概占了35個像素,使用UITableViewStyleGrouped風格的朋友們注意了,如下圖為使用UITableViewStyleGrouped時的差異:
圖1-1
還有就是iOS7下的UITableView增加了一個UITableViewWrapperView子視圖,UITableViewCell變成了UITableViewWrapperView的子視圖,而在iOS6中,UITableViewCell是UITableView的子視圖。
用代碼表現出來就是:
|
1
2
3
|
UITableView *tableView = (UITableView *)cell.superview.superview;
//in iOS7
UITableView *tableView = (UITableView *)cell.superview;
//in iOS6
|
如果之前定制cell的時候,用下面代碼取tableView的需要做適配了。
|
1
|
UITableView *tableView = (UITableView *)
self
.superview;
|
還有就是現在可以直接設置UITableView的背景顏色了:
|
1
|
_loginTable.backgroundColor = [UIColor redColor];
|
另一個問題就是我使用UISearchBar的時候,Apple在iOS7中也做了調整。如下圖:
圖1-2
相信很多人在使用UISearchBar的時候,都比較喜歡上面的那種去了背景色的樣子,在iOS6中我是使用下面這種方式去除背景色:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
//for iOS6
for
(UIView *subview in
self
.search.subviews) {
if
([subview isKindOfClass:
NSClassFromString
(
@"UISearchBarBackground"
)]) {
[subview removeFromSuperview];
break
;
}
}
|
而今天突然發現,納尼,在iOS7中,搜索框消失了,用小伙伴的方法看了一下,原來視圖樹改變了。如下圖:
在iOS7中,UISearchBar的子視圖變成一個UIView,所以原來的方法不管用了,但是看了一下文檔,在iOS7中新增了一個barTintColor的屬性,我們可以設置barTintColor為clearColor,便得到圖1-2中的效果。
|
1
2
3
4
5
6
7
|
//for iOS 7
if
([
self
.search respondsToSelector:
@selector
(barTintColor)]) {
[
self
.search setBarTintColor:[UIColor clearColor]];
}
|
至此,目前我在適配iOS7的時候,就遇到這兩個問題,寫出來,分享給大家。
今天看到一個笑話,快笑得不能自已了:
為什么練葵花寶典一定要先自宮?
網友答復:練成神功后,絕對會屌爆了,所以要先防患於未然。O(∩_∩)O~


