Masonry自適應(yīng)cell高度造成,同時實現(xiàn)cell折疊和展開

這都2017年了還在用frame布局實在是有點low了显熏。。谜疤。
Autolayout自iOS6開始引入佃延,到現(xiàn)在基本上也沒什么坑了,就算有夷磕,前輩們也都填好了( ??? .? ??? )?

自動計算cell高度

我理解的自動計算cell高度履肃,有兩個注意點:
第一: 設(shè)置tableView.estimatedRowHeight
self.tableView.estimatedRowHeight = 20

第二: 設(shè)置約束,保證cell的contentView的高度可以根據(jù)子控件算出來
例如以下只有一個label填充的cell(cell的結(jié)構(gòu)->cell--contentView--label)
只需要給label添加以下約束:

// 布局
    [_contentLabel mas_updateConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(_contentLabel.superview.mas_left).with.offset(20);
        make.top.equalTo(_contentLabel.superview.mas_top).with.offset(20);
        make.right.equalTo(_contentLabel.superview.mas_right).with.offset(-20);
        make.bottom.equalTo(_contentLabel.superview.mas_bottom).with.offset(-20);
    }];

cell就可以自動計算自己的高度

內(nèi)容高度不固定的cell

實現(xiàn)cell的折疊和展開

先說我覺的比較好的實現(xiàn)方法:上面約束不用變改變Label的numberOfLines就可以坐桩,需要展開的時候設(shè)置為0尺棋,折疊的時候設(shè)置為3。

下面的是我的想法過程,大家可以略過:
一開始的時候想的是給label一個高度小于等于120的約束膘螟,并且持有它
make.height.lessThanOrEqualTo(@120)
折疊的時候成福,把約束install,展開的時候uninstall荆残。

實現(xiàn)起來:每次在TableView的cell點擊代理方法里面 調(diào)用cell的方法使label高度的約束install和uninstall奴艾,然后調(diào)用[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

后來發(fā)現(xiàn)和這個約束有沖突
make.bottom.equalTo(_contentLabel.superview.mas_bottom).with.offset(-20) ,作為強迫癥患者這能忍内斯?蕴潦。
然后突然想到label的numberOfLines可以限制行數(shù)......這不就是現(xiàn)成的實現(xiàn)折疊/展開的最好方法嗎...

效果:
可以折疊的cell的效果圖
Demo :

test-autolayoutcell

文章參考 :

1.Masonry
2.優(yōu)化UITableViewCell高度計算的那些事
3.iOS7和iOS8下的自適應(yīng)cell

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市俘闯,隨后出現(xiàn)的幾起案子潭苞,更是在濱河造成了極大的恐慌,老刑警劉巖真朗,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件此疹,死亡現(xiàn)場離奇詭異,居然都是意外死亡遮婶,警方通過查閱死者的電腦和手機蝗碎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旗扑,“玉大人衍菱,你說我怎么就攤上這事〖缁恚” “怎么了脊串?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長清钥。 經(jīng)常有香客問我琼锋,道長,這世上最難降的妖魔是什么祟昭? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任缕坎,我火速辦了婚禮,結(jié)果婚禮上篡悟,老公的妹妹穿的比我還像新娘谜叹。我一直安慰自己,他們只是感情好搬葬,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布荷腊。 她就那樣靜靜地躺著,像睡著了一般急凰。 火紅的嫁衣襯著肌膚如雪女仰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音疾忍,去河邊找鬼乔外。 笑死,一個胖子當著我的面吹牛一罩,可吹牛的內(nèi)容都是我干的杨幼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼聂渊,長吁一口氣:“原來是場噩夢啊……” “哼推汽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歧沪,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎莲组,沒想到半個月后诊胞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡锹杈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年撵孤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竭望。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡邪码,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咬清,到底是詐尸還是另有隱情闭专,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布旧烧,位于F島的核電站影钉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏掘剪。R本人自食惡果不足惜平委,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望夺谁。 院中可真熱鬧廉赔,春花似錦、人聲如沸匾鸥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勿负。三九已至岗照,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背攒至。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工厚者, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迫吐。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓库菲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親志膀。 傳聞我的和親對象是個殘疾皇子熙宇,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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