今天寫一個(gè)簡(jiǎn)單的小例子,用到了UITableView叉谜,并且沒有自定義分割線,所以反映出了分割線的顯示問題(雖然之前好像遇到過回还,但是已經(jīng)不記得了。癣丧。。)平時(shí)開發(fā)中都是自定義分割線的,所以也沒有發(fā)現(xiàn)這個(gè)問題转绷。
在iOS9和iOS10模擬器上,不進(jìn)行任何設(shè)置谴返,顯示結(jié)果為:
與這個(gè)有關(guān)系的幾個(gè)設(shè)置
//設(shè)置iOS7以上表格分割線邊距煞肾,與setLayoutMargins:同時(shí)存在時(shí),setSeparatorInset:設(shè)置生效
if ([self.mainTableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.mainTableView setSeparatorInset:UIEdgeInsetsZero];
}
//可不設(shè)
if ([self.mainTableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.mainTableView setLayoutMargins:UIEdgeInsetsZero];
}
//設(shè)置iOS9以上表格分割線邊距
if ([self.mainTableView respondsToSelector:@selector(setCellLayoutMarginsFollowReadableWidth:)]) {
[self.mainTableView setCellLayoutMarginsFollowReadableWidth:NO];
}
具體說明
@property(nonatomic) UIEdgeInsets separatorInset;
——UITableView的屬性
iOS7以后嗓袱,表格的分割線不會(huì)占滿整個(gè)cell籍救,需要通過這個(gè)屬性來設(shè)置默認(rèn)的邊距@property(nonatomic) BOOL cellLayoutMarginsFollowReadableWidth;
——UITableView的屬性
iOS9以后,用于表明cell的邊距是根據(jù)view的可讀區(qū)域的寬度設(shè)置的渠抹。
可讀區(qū)域說明:
@property(nonatomic, readonly, strong) UILayoutGuide *readableContentGuide;
iOS9以后蝙昙,UIView引入了這個(gè)屬性,這個(gè)屬性為View定義了一個(gè)可以放置用于閱讀的內(nèi)容的最佳區(qū)域梧却。如果啟用 readableContentGuide的話奇颠,那么View就會(huì)把它作為邊緣進(jìn)行布局。
-
@property(nonatomic) UIEdgeInsets layoutMargins;
——UIView的屬性,iOS8+
就是xib上增加約束時(shí)放航,會(huì)出現(xiàn)的relatvie to margin烈拒,默認(rèn)為16或20。(所以广鳍,好像和這里沒有什么關(guān)系荆几,只有在建立約束時(shí)不相對(duì)于邊距就可以了)