開發(fā)中斗搞,我們經(jīng)常需要定制tableView力喷,其中tableView中cell的分割線,系統(tǒng)默認(rèn)的是分割線與左側(cè)沒有頂滿眷昆,右側(cè)頂滿了蜒秤,這樣不符合定制的要求;
UITableViewDelegate
/** 設(shè)置tableview的分割線的顯示*/
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 15)];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsMake(0, 15, 0, 15)];
}
}
可能有一個(gè)疑問亚斋,為甚么設(shè)置一個(gè)分割線的長度作媚,需要這兩個(gè)方法,這兩個(gè)方法不是都是設(shè)置長度嗎帅刊?一個(gè)不行嗎纸泡?這個(gè)問題,我們可以從Apple的源碼中找到答案赖瞒,我們按住option鍵女揭,鼠標(biāo)點(diǎn)擊方法名稱蚤假,就可以跳轉(zhuǎn)到apple源碼聲明中。
我們可以看到NS_AVAILABLE_IOS(8_0)和NS_AVAILABLE_IOS(7_0)
/** NS_AVAILABLE_IOS(8_0)吧兔,這個(gè)方法可以在iOS8.0及以后的版本中使用磷仰,如果在比8.0更老的版本中調(diào)用這個(gè)方法,就會(huì)引起崩潰境蔼。*/
所以灶平,個(gè)人理解是同時(shí)使用兩個(gè)方法是為了適配不同的系統(tǒng)。