前言
在我們創立一個tableView的時分,細心的你有沒有發現UITableViewCell左側會有空白。而我們在開發中有這樣的需求: 需求一根完好的聯系線(去掉煩人的空白局部, 即聯系線的寬度 == 屏幕的寬度)。
那麼上面我就講一講該如何去掉空白的局部,顯示完好的聯系線。
這裡我提供兩種辦法 :
第一種辦法,也是我們最常用的辦法,也是在我們自定義cell的時分所用到的. 即去掉tableView默許的聯系線,自定義cell,重寫setFrame: 辦法即可
上面是詳細代碼完成:
步驟一 : 移除零碎默許的聯系線
// 設置聯系線的款式為None. self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
tableView有個separatorStyle屬性, 即聯系線的款式.這是一個枚舉類型. 我們按著command點擊它進入他的屬性中會發現如下代碼:
typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) { UITableViewCellSeparatorStyleNone, //不顯示聯系線 UITableViewCellSeparatorStyleSingleLine,// 單線 UITableViewCellSeparatorStyleSingleLineEtched // 這種別離式僅支持分組款式表視圖 // This separator style is only supported for grouped style table views currently }
步驟二 : 重寫setFrame: 辦法
留意重寫setFrame: 辦法是需求我們寫在UITableViewCell中的, 下面也說過,這種辦法適用於自定義cell.
上面是代碼:
- (void)setFrame:(CGRect)frame { frame.origin.y += 1; // 讓cell的y值添加1(依據自己需求聯系線的高度來停止調整) frame.size.height -= 1; // 讓cell的高度減1 [super setFrame:frame]; // 別忘了重寫父類辦法 }
經過下面兩個步驟,就會去掉零碎默許的聯系線,生成我們自己的聯系線. 這種辦法是不是很復雜呢? 假如需求自定義聯系線的顏色,只需求設置`separatorColor`為你需求的顏色就可以啦.
第二種辦法也很復雜,此辦法不需求我們自定義cell,運用默許的tableViewcell也可以成功.這裡需求闡明說的是:
IOS7中,UITableViewCell左側會有默許15像素的空白.設置setSeparatorInset:UIEdgeInsetsZero
能將空白去掉.
IOS8中,setSeparatorInset:UIEdgeInsetsZero
的設置曾經不起作用了.
上面是處理方法,首先在viewDidLoad辦法參加以下代碼:
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) { // 假如tableView呼應了setSeparatorInset: 這個辦法,我們就將tableView聯系線的內邊距設為0. [self.tableView setSeparatorInset:UIEdgeInsetsZero]; } if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) { // 假如tableView呼應了setLayoutMargins: 這個辦法,我們就將tableView聯系線的間距距設為0. [self.tableView setLayoutMargins:UIEdgeInsetsZero]; }
然後在UITableView的代理辦法中參加以下代碼
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { // 這兩句的含義跟下面兩句代碼相反,就不做解釋了 if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZero]; } if ([cell respondsToSelector:@selector(setLayoutMargins:)]) { [cell setLayoutMargins:UIEdgeInsetsZero]; } }
總結
以上就是這篇文章的全部內容了,經過上述兩個步驟也可以完成讓cell 的聯系線完好的顯示出來. 小同伴們,趕忙試試吧. 假如有什麼更好的方法,或許是其他的思緒可以留言交流。 同時十分歡送提出珍貴的意見.希望本文的內容對大家的學習或許任務能帶來一定的協助。
【iOS開發之TableView完成完好的聯系線詳解】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!