iOS的UITableViewCell高度如何設定

2021-08-21 03:15:25 字數 1212 閱讀 9057

怎麼設定uitableviewcell高度比較合適?,這個問題對於初學者來說有時會變成大問題。大家都知道ios的列表都是用uitableviewcontroller來管理的,裡面的每個單元格都是用uitableviewcell來定義(以下簡稱為cell),而且uitableviewcontroller提供設定cell高度的方法,就是要實現**uitableviewdelegate,這個**中有乙個方法可以用來設定高度:

override func tableview(_ tableview: uitableview, heightforrowat indexpath: indexpath)

但是這個方法設定cell的高度有個很大的問題:通過這個方法設定的cell高度是死的,它不會根據cell中的內容變化而靈活的改變高度。例如,cell中包含一段文字內容並且文字的長度不確定,也就是文字可能3行,也可能5行,明顯5行文字所要要求的高度要明顯大於3行,而固定高度的cell肯定不能很好的適應這種要求。那麼有什麼辦法解決這個問題呢?

其實ios早就為我們想好這種需求了,方法很簡單:cell中的檢視在高度方向要能形成明確的約束鏈。也就是說,cell中所有的檢視設定約束後,xcode能夠根據這些約束計算出乙個確定的cell高度。舉個簡單的例子,如下圖所示:

這個cell中包含乙個uilabel檢視和乙個uibutton檢視,那麼怎樣才算有乙個明確的約束鏈呢?可以像上圖那樣設定:uilabel上邊到cell上邊的距離(100) + uilabel自身高度(25) + uibutton上邊到uilabel下邊的距離(102) + uibutton自身高度(25)+ uibutton下邊到cell下邊的距離(105)。這樣整個cell的高度就可以計算出來:100+25+102+25+105=357。當然,這個不需要我們去算,我們只要做好這些約束,系統自動會為我們計算出來。其實,帶文字的檢視本身的高度我們不需要理會,在這裡為了說明問題,我們把文字高度設定為25,帶文字的檢視我們都不應該設定固定高度,我們不理會就好了,因為文字內容以及字型大小等確定之後xcode會自己計算檢視的高度。

當然,設定約束的原則是讓xcode知道cell的總高度就好了,只要約束不衝突就可以了。因此,也可以像下圖這樣設定。只要uilabel檢視的下邊到cell的下邊的距離足夠放下乙個uibutton檢視就ok了,至於uibutton怎麼約束已經不重要了,因為這樣約束xcode足以計算出整個cell的高度了。

iOS開發 UITableView的使用

uitableview是我們使用用來展示資料的,他的使用很廣泛,也是使用最多的控制項,下面就一起看看他的簡單使用吧。uitabelview本身自帶uiscrollview,所以資料多了,他就是自動滾動。要想在uitabelview中顯示資料,必須有乙個資料來源,也就是讓viewcontroller實...

IOS控制項UITableView詳解

終於寫到了uitableview,用處最廣的乙個控制項,當然也是要記相當多東西的乙個控制項。首選建立乙個新的專案,並新增乙個mainviewcontroller的class檔案 開啟mainviewcontroller.h檔案 inte ce mainviewcontroller uiviewcon...

IOS控制項UITableView詳解

終於寫到了uitableview,用處最廣的乙個控制項,當然也是要記相當多東西的乙個控制項。首選建立乙個新的專案,並新增乙個mainviewcontroller的class檔案 開啟mainviewcontroller.h檔案 cpp view plain copy inte ce mainview...