項目中遇到cell動態(tài)高度,原本想著是根據(jù)數(shù)據(jù)源的數(shù)據(jù)來給cell的高度賦值就行了,可是一直弄不好。。有的沒錯,但是有的cell上的自視圖會超過cell的高度,覆蓋下個cell,造成很大的困擾。。沒辦法,菜鳥啊。。。
不過問題終究還是被解決了。。。
我是用xib拖的cell,但是沒用適配。是代碼適配的。
給cell一個獲取高度的方法,在cell的點h申明中。在點m中實現(xiàn)
這里我的cell是根據(jù)cell上加的一個背景View(cellBeijinView)的高度變化而變化的,而這個背景view上有l(wèi)able和圖片,lable上顯示服務(wù)器傳過來的備注信息,字?jǐn)?shù)不定,所以高度也不一定,圖片數(shù)量也不一定,所以我的背景View高度也是動態(tài)的。
/*這里是重要部分*/
這個方法是給cell一個預(yù)定的高度,一般的都是先吊用heightForRowAtIndexPath方法在調(diào)用cellForRowAtIndexPath方法。但是現(xiàn)在加了上面的給定預(yù)先高度的
方法,就可以先調(diào)用cellForRowAtIndexPath
再調(diào)用heightForRowAtIndexPath方法了,而且最終cell的高度是以heightForRowAtIndexPath方法中給的值為準(zhǔn)。
所以我們可以在cellForRowAtIndexPath中弄到Cell上背景view的高度,再把cell的高度放到一個字典中存起來,key就用indexpath來設(shè)定。
在cellForRowAtIndexPath方法中,
在heightForRowAtIndexPath
方法中
這樣就OK了,注意這里在cellForRowAtIndexPath方法里有一個
這個是讓一個cell預(yù)先布置試圖,和那個給定預(yù)先高度的方法同理,總之這樣過后,你的適配就可以了。完美。。。
當(dāng)然本菜鳥有哪些地方說的不對,歡迎指正,不要讓我的理解一直歪曲,謝謝大家,希望幫到你們