關(guān)于UITableView 分割線的那點事

我們在開發(fā)中颂郎,UITableView是很常用的控件谒获。有的時候扳埂,系統(tǒng)自帶的分割線可以滿足產(chǎn)品的要求(實在是萬幸)业簿,但是大部分時候,系統(tǒng)自帶的分割線并不能滿足產(chǎn)品的需求阳懂,那就需要我們自定義梅尤。那么tableview的分割線我們一般是如何繪制的呢?

溫馨提示:以下設(shè)置分割線的方法只針對于tableview的plain樣式岩调,group樣式不適用巷燥。

一、自己添加一個view來實現(xiàn)

我們自定義tableview的分割線的時候号枕,一般是采用如下的方式:

    1. 先在tableview中缰揪,關(guān)閉系統(tǒng)自帶的分割線。
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    1. 在cell中添加一個view葱淳。按需求設(shè)置好顏色钝腺,設(shè)置view的高度為一個像素。然后把這個view添加到cell的contentview上蛙紫。
- (UIView *)line {

   if (!_line) {
       
       _line = [[UIView alloc] initWithFrame:CGRectMake(0,54, [UIScreen mainScreen].bounds.size.width, 1.0/[UIScreen mainScreen].scale)];
       _line.backgroundColor = [UIColor blueColor];
   }
   return _line;
}

二拍屑、改造系統(tǒng)的分割線

隨著開發(fā)時間越來越長途戒,后來發(fā)現(xiàn)修改系統(tǒng)分割線的一些屬性也可以達到需求想要的效果坑傅,不一定要采用添加一個view的方式來實現(xiàn)自定義分割線。

系統(tǒng)自帶的分割線不是和屏幕等寬的喷斋,而是距離左邊緣15個像素唁毒。

造成以上效果的原因是系統(tǒng)自帶的分割線的edgeInsets默認是UIEdgeInsetsMake(0, 15, 0, 0)蒜茴。

UIEdgeInsets的定義如下,分別是距離頂部浆西、左邊緣粉私、底部、右邊緣的距離近零。

  UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
    UIEdgeInsets insets = {top, left, bottom, right};
    return insets;
}

UIEdgeInsetsZeroUIEdgeInsetsMake(0, 0, 0, 0)是相等的诺核。
找到了系統(tǒng)分割線和屏幕不等寬的原因,那么當(dāng)我們需要一條和屏幕等寬的分割線時久信,就可以通過修改degeInsets來達到效果窖杀。步驟如下:

  • 1.設(shè)置tableview的相關(guān)屬性。
    tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; //設(shè)置分割線的分割
    tableView.separatorColor = [UIColor blueColor]; //設(shè)置分割線的顏色
    [tableView setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)]; //設(shè)置分割線的邊Insets

separatorStyle 可以不設(shè)置裙士,默認是打開的入客。

  • 2.在cell的初始化方法中調(diào)用該方法:
 [self setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];

@property (nonatomic) UIEdgeInsets separatorInset NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED; // allows customization of the separator frame

NS_AVAILABLE_IOS說明iOS7之后的系統(tǒng)都生效,所以setSeparatorInset:可以放心調(diào)用腿椎。

如果需要一條兩邊都留邊距的分割線桌硫,修改UIEdgeInsetsMake的左右邊距即可。例如:左右邊距同時留10個像素啃炸。代碼如是[self setSeparatorInset:UIEdgeInsetsMake(0, 10, 0, 10)];

溫馨提示:如果tableview和cell里設(shè)置的edgeInsets不一致時铆隘,cell里設(shè)置的edgeInsets生效。

綜上所述:個人覺得以上兩種設(shè)置分割線的方法南用,采用修改系統(tǒng)屬性來達到要求的方式更好一些咖驮。代碼量更少一些,維護方便训枢,還有就是不會有坐標設(shè)置的問題產(chǎn)生托修,如果使用自定義view的方式,如果坐標設(shè)置的不嚴謹恒界,會有坐標問題產(chǎn)生睦刃。除非是修改系統(tǒng)屬性實在是達不到產(chǎn)品要求,才建議去自己寫view實現(xiàn)分割線十酣。個人見解涩拙,僅供參看。

時代在進步耸采,人類的社會在發(fā)展兴泥。加油,明天會更好虾宇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搓彻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旭贬,老刑警劉巖怔接,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異稀轨,居然都是意外死亡扼脐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門奋刽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓦侮,“玉大人,你說我怎么就攤上這事佣谐≡嘤埽” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵台谍,是天一觀的道長须喂。 經(jīng)常有香客問我,道長趁蕊,這世上最難降的妖魔是什么坞生? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮掷伙,結(jié)果婚禮上是己,老公的妹妹穿的比我還像新娘。我一直安慰自己任柜,他們只是感情好卒废,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宙地,像睡著了一般摔认。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宅粥,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天参袱,我揣著相機與錄音,去河邊找鬼秽梅。 笑死抹蚀,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的企垦。 我是一名探鬼主播环壤,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钞诡!你這毒婦竟也來了郑现?” 一聲冷哼從身側(cè)響起湃崩,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懂酱,沒想到半個月后竹习,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體誊抛,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡列牺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拗窃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞎领。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖随夸,靈堂內(nèi)的尸體忽然破棺而出九默,到底是詐尸還是另有隱情,我是刑警寧澤宾毒,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布驼修,位于F島的核電站,受9級特大地震影響诈铛,放射性物質(zhì)發(fā)生泄漏乙各。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一幢竹、第九天 我趴在偏房一處隱蔽的房頂上張望耳峦。 院中可真熱鬧,春花似錦焕毫、人聲如沸蹲坷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽循签。三九已至,卻和暖如春疙咸,著一層夾襖步出監(jiān)牢的瞬間懦底,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工罕扎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留聚唐,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓腔召,卻偏偏與公主長得像杆查,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容