關於iOS8適配時產生的tableView分割線問題

在app之前版本適配iPad的過程中,因爲需要在不同寬度的設備上顯示不同的樣式,所以在subCell.m中重寫了父類方法:
- (void)autolayoutsubviews;
具體的編寫方法爲
- (void)layoutSubviews {
    
    //調整各個控件的位置
<span style="font-family: Arial, Helvetica, sans-serif;">}</span>

結果導致cell的分割線顯示錯誤,如下圖所示:


      可以看到明顯的分割線錯位現象。這裏的分割線全部認爲本cell高度爲44.因爲我們在重寫- (void)layoutsubviews方法的時候,並未調用父類的方法,以至於子類在tableview中無法返回自己的實際高度。 

所以我們在使用該父類方法時,應調用其父類方法,如下所示:
- (void)layoutSubviews {
    
    [super layoutSubviews];
    
    //對控件的frame進行指定,
   //注意:不要對self.contentView的frame進行指定,否則在需要改變contentView的地方(比如多行編輯時)會導致錯誤顯示。
}
通過以上改寫,我們獲取到正確的顯示,如下圖所示:

好了,這個就是整個問題的關鍵所在。在iOS7及以下,並不會導致分割線的錯誤顯示,但是在iOS8中,對於這裏的要求更加嚴格。
還有就是如果在iOS7及以下中未調用父類方法,則多行編輯時無法正確顯示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章