最近項(xiàng)目中的tableView的cell需要根據(jù)cell中l(wèi)abel的內(nèi)容做適應(yīng)高度 之前在做這種工作的時(shí)候都是事先計(jì)算好cell中內(nèi)容的高度 然后在返回高度的方法中 依次進(jìn)行返回 這種有些麻煩 而且使用起來有局限 下面介紹一種簡(jiǎn)潔有效的方法 目前還沒發(fā)現(xiàn)這種簡(jiǎn)潔有效的方法存在哪些大的弊端
- 在cell中正常創(chuàng)建控件 正常布局
- 在vc中使用tableView的estimatedRowHeight屬性 給該屬性賦值 盡可能賦一個(gè)cell的平均高度的值
通過上面的兩步就可以輕易的完成cell的高度自適應(yīng) 這個(gè)屬性為tableView的預(yù)估高度 這是iOS7蘋果推出的 為什么要盡可能設(shè)置一個(gè)cell平均高度值呢 這個(gè)方式給cell高度賦值和協(xié)議方法給高度賦值是截然不同的 協(xié)議方法是在cell將要出現(xiàn)的時(shí)候所有的cell就已經(jīng)有值了 而這個(gè)預(yù)估高度給cell高度賦值是只給當(dāng)前顯示的cell高度進(jìn)行賦值 其他的不管 對(duì)于那些賦過值的 會(huì)自動(dòng)加入系統(tǒng)緩存 等下次cell出現(xiàn)的時(shí)候自動(dòng)讀取 如果我們給出的這個(gè)預(yù)估值與實(shí)際值相差很大 這樣在加載cell時(shí)候系統(tǒng)在更新cell的高度時(shí)候回很吃力
To Be Continued...