cell讓分割線左對齊

2021-07-15 09:42:28 字數 1700 閱讀 9506

在ios8之後,uitableview的分割線距離左邊會有一段距離;我們這裡就讓這段距離消失。

首先在ios7裡面讓分割線左對齊只要一句**就好了:

[self.tableview setseparatorinset:uiedgeinsetszero];
但是在ios8之後這樣只能縮排1/2左右,還是不能完全左對齊。下面我就不多說了直接上**吧!

#pragma 《設定cell分割線》

// 讓分割線左對齊

-(void)viewwilllayoutsubviews

if ([self.tableview respondstoselector:@selector(setlayoutmargins:)])

}-(void)tableview:(uitableview *)tableview willdisplaycell:(uitableviewcell *)cell forrowatindexpath:(nsindexpath *)indexpath

if ([cell respondstoselector:@selector(setlayoutmargins:)])

}

如何用的純**編寫的可能會不能實現,那怎麼辦啊??別急,看下面:
- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath 

// cell顏色

cell.backgroundcolor = [uicolor colorwithred:0.194 green:0.8828 blue:1.0 alpha:1.0];

cell.textlabel.text = [nsstring stringwithformat:@"%@==%zd",[self class],indexpath.row];

[self.tableview setlayoutmargins:uiedgeinsetszero];

[self.tableview setseparatorinset:uiedgeinsetszero];

[cell setseparatorinset:uiedgeinsetszero];

[cell setlayoutmargins:uiedgeinsetszero];

return cell;

}

這樣子的話,分割線就左對齊了;

順便分享點小技巧

當我們要顯示固定的cell的行數又想下面的cell的分割線隱藏怎麼辦??當然可以自定義了,這裡有個小技巧:直接設定footview就好了:

//  隱藏所以分割線

= uitableviewcellseparatorstylenone;

// 隱藏不需要的分割線

self

.tableview

.tablefooterview = [[uiview alloc]init];

還一點問題就是:

ios8之後模擬器上面cell的分割線要拖動才能若隱若現看見,不拖動是不能看見的。這個原因是這樣子的。因為5s,6,6s都到@x2 的螢幕由(2x2)4個畫素點構成;而plus是(3x3)9個畫素點構成;而在模擬器上只顯示乙個畫素點;這麼就解釋了為什麼若隱若現了。但是在真機上不會有問題的,只是在模擬器上存在這個問題而已。

補全cell分割線

if cell respondstoselector selector setseparatorinset if cell respondstoselector selector setpreservessuperviewlayoutmargins if cell respondstoselecto...

iOS開發系列 cell分割線置頂

廢話不多說,直接上 tableviewcell分割線左側置頂 1 void viewdidlayoutsubviews if tableview respondstoselector selector setlayoutmargins tableviewcell分割線左側置頂 2 void tabl...

listview的分割線

listview中每個item項之間都有分割線,設定android footerdividersenabled表示是否顯示分割線,此屬性預設為true。1.不顯示分割線只要在listview控制項中新增android footerdividersenabled false 即可。html view ...