UITableViewCell分割線設(shè)置

關(guān)于UITableViewCell的分割線坎缭,網(wǎng)上有無數(shù)的教程竟痰,,但是許多真的用起來卻毫無作用掏呼。這讓很多人最后只能隱藏系統(tǒng)分割線坏快,自己畫一條。

我也遇到了這個坑憎夷,又不太甘心采用自己畫線的方法莽鸿。在閱讀一些資料后,大概整理了下,分享出來祥得,希望以后更多的的人可以繞過這個坑兔沃。

很多網(wǎng)上搜索來的解決分案,大多是级及,設(shè)置separatorInset屬性(iOS7 之后加入的)乒疏,這個屬性定義了分割線到左右邊界的距離(注:separatorInset雖然是UIEdgeInsets類型,但是只有左右屬性有效)饮焦。 實際上缰雇,在iOS7確實是這樣設(shè)置確實有效,這也是為什么很多blog給出這樣的方案追驴。

可械哟,現(xiàn)在實際上,這并不一定能行得通殿雪,很多時候你會發(fā)現(xiàn)暇咆,這個屬性并沒有達到預期的效果。原因是iOS8之后增加了這樣一個屬性preservesSuperviewLayoutMargins丙曙,它的作用是 設(shè)置視圖是否保留父視圖的margins爸业。這里有一個坑,也是上面的解決方案時靈時不靈的根源亏镰。
@property (nonatomic) BOOL preservesSuperviewLayoutMargins NS_AVAILABLE_IOS(8_0); // default is NO - set to enable pass-through or cascading behavior of margins from this view’s parent to its children
這是官方的注釋扯旷,默認是NO,即不保留父視圖約束索抓。然而钧忽,實際情況并不一定是這樣。經(jīng)過驗證逼肯,在UITableViewCell 加載方式不同時耸黑,這個屬性的默認值并不同。

cell如果是IB加載篮幢,preservesSuperviewLayoutMargins 默認為NO大刊,而如果是代碼加載,默認值則為YES三椿。這就是這個坑之所在缺菌。

iOS8之后,加入了layoutMargins屬性搜锰,layoutMargins定義了視圖邊界與子視圖邊界之間間距伴郁,非控制器根視圖默認為UIEdgeInsetsMake(8.0, 8.0, 8.0, 8.0),即上下左右各8個單位長度纽乱《暌铮控制器根視圖默認為UIEdgeInsetsMake(0.0, 16.0, 0.0, 16.0)或者UIEdgeInsetsMake(0.0, 20.0, 0.0, 20.0),取決于當前size class。我們可以改變非根視圖的layoutMargins租冠,但是不可以改變根視圖的layoutMargins鹏倘,它由系統(tǒng)設(shè)置管理。

還有一個問題顽爹,我們會發(fā)現(xiàn)UITableViewUITableViewCell都有separatorInset屬性纤泵,那么它們有什么區(qū)別呢?
分別設(shè)置镜粤,看看效果
<pre><code>
tableView.separatorInset = UIEdgeInsetsMake(0.0, 30.0, 0.0, 0.0);

tableView.separatorColor = [UIColor redColor];

tableView.backgroundColor = [UIColor lightGrayColor];

</pre></code>

<pre><code>
cell.separatorInset = UIEdgeInsetsMake(0.0, 5 * indexPath.row, 0.0, 0.0);

// cell.separatorInset = UIEdgeInsetsZero;

cell.layoutMargins = UIEdgeInsetsZero;

cell.preservesSuperviewLayoutMargins = NO;

</pre></code>
效果圖:

Simulator Screen Shot 2016年8月23日 下午6.18.06.png

簡單來看UITableViewseparatorInset屬性捏题,設(shè)置的是全局屬性,包括未加載cell的分割線肉渴,而UITableViewCellseparatorInset屬性則是為指定的cell了設(shè)置inset公荧,并且優(yōu)先級高于前者。

總結(jié):設(shè)置cell的屬性同规,需要設(shè)置以下三個屬性

<pre><code>
cell.separatorInset = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0);

cell.layoutMargins = UIEdgeInsetsZero;

cell.preservesSuperviewLayoutMargins = NO;
</pre></code>

其中循狰,separatorInset可以在UITableView進行全局設(shè)置。

這樣你就擺脫了自己畫線的尷尬境地了券勺。

需要注意的是當cell分割線設(shè)置距離邊界距離超過16后绪钥,cell距離邊界的距離也會收到影響,發(fā)生相應的改變关炼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末程腹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子儒拂,更是在濱河造成了極大的恐慌寸潦,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侣灶,死亡現(xiàn)場離奇詭異甸祭,居然都是意外死亡,警方通過查閱死者的電腦和手機褥影,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咏雌,“玉大人凡怎,你說我怎么就攤上這事∩薅叮” “怎么了统倒?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長氛雪。 經(jīng)常有香客問我房匆,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任浴鸿,我火速辦了婚禮井氢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘岳链。我一直安慰自己花竞,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布掸哑。 她就那樣靜靜地躺著约急,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苗分。 梳的紋絲不亂的頭發(fā)上厌蔽,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音摔癣,去河邊找鬼奴饮。 笑死,一個胖子當著我的面吹牛供填,可吹牛的內(nèi)容都是我干的拐云。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼近她,長吁一口氣:“原來是場噩夢啊……” “哼叉瘩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起粘捎,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤薇缅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后攒磨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泳桦,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年娩缰,在試婚紗的時候發(fā)現(xiàn)自己被綠了灸撰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡拼坎,死狀恐怖浮毯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泰鸡,我是刑警寧澤债蓝,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站盛龄,受9級特大地震影響饰迹,放射性物質(zhì)發(fā)生泄漏芳誓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一啊鸭、第九天 我趴在偏房一處隱蔽的房頂上張望锹淌。 院中可真熱鬧,春花似錦莉掂、人聲如沸葛圃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽库正。三九已至,卻和暖如春厘唾,著一層夾襖步出監(jiān)牢的瞬間褥符,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工抚垃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喷楣,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓鹤树,卻偏偏與公主長得像铣焊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子罕伯,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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