iOS6和iOS7代码的适配(4)——tableView
? ? ? iOS7上不少控件的樣子有了變化(畢竟要扁平化嘛),不過感覺變化最大的肯定非tableView莫屬。因為這個控件的高度可定制性,原先是使用及其廣泛的,這樣的一個改變自然也影響頗大。
? ? ? 1.accessoryType
? ? ? tableViewCell中變化最大的的accessoryType是UITableViewCellAccessoryDetailDisclosureButton了,這個在iOS6的時候是提示用戶還有更多內容,iOS7里面變成了UITableViewCellAccessoryDetailButton。
? ? ??
? ? ? 2. Plain類型的tableView
? ? ? Plain這個類型變化不大,除了從擬物到扁平的一個設計思路,就是一個cell顏色的調整了。
? ? ? 在iOS6的時候,cell是默認使用透明色的,就是說會顯示tableView的顏色;但iOS7里面cell默認是白色,會擋住tableView的背景色。
? ? ? 3. Group類型的tableView
? ? ? Group這個類型變化較為明顯,主要是對于Header的處理有了變化。
? ? ? iOS6的時候,每個Section都是有邊框線的,section的Header大概10個pixel左右,而且第一個section比較貼近上端,沒有明顯的留白;但iOS7里面section的邊框線取消了,section的Header大概35個pixel,每個section的樣式和Plain比較類似,第一個section和上端有個明顯的留白。
? ? ? 要修改這個可以使用heightForHeaderInSection:方法來設置Header的高度。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {if (section == 0) {return 10.0;} else {return 0;} }
? ? ? 效果對比如下圖:
? ? ? 4. 分隔線
? ? ? 我發現這一點很多地方都沒有提及,可能是大家覺得很自然,沒必要多說。我覺得這個地方差距還是蠻大的,值得說一下。
? ? ? iOS6的時候每個cell的分隔線都是從左到右,完整的一條;iOS7的時候就是上下邊框是完整的,中間的較短,如果是文字,短的不多,沒什么感覺;但如果你在左側放一個UIImage,那么分隔線是從Image之后開始的,這個就很明顯,尤其是當你Image還不是一樣大小的時候,分隔線的起始點是不同的,這個就會相當相當難看,所以推薦Image大小要一致,至少一個section里面要一致。
? ? ? tableView在iOS7上的不同點當然不僅僅這么幾個啦,我在適配的過程中感覺到這幾個是比較明顯的,所以拿出來曬一下。
總結
以上是生活随笔為你收集整理的iOS6和iOS7代码的适配(4)——tableView的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ElementUI图片上传 回显
- 下一篇: [面试] lcy - 箴言