iOS開發之Masonry(五)

2021-07-09 14:00:17 字數 913 閱讀 1559

+ (cgfloat)cellheightwithmodel:(hxtestmodel *)model
給cell提供乙個這個靜態方法,該方法是通過模型計算cell的高度,在返回cell高度的**方法中呼叫該方法,並傳入模型,如下:

- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath
當系統要返回cell的高度的時候,就會重新設定cell子控制項的約束,再通過[cell layoutifneeded]方法重新布局,得到cell最後乙個控制項的最大y值。

在計算cell高度的時候,設定下面屬性會節省系統計算cell的高度的消耗。

// 設定該屬性後,heightforrow:和cellforrow:方法交替執行,還可以減輕cell高度的計算量

tableview.estimatedrowheight = 100.0;

或者實現**方法:

/**

* 實現該方法後,heightforrow和cellforrow方法交替執行,還可以減輕cell高度的計算量

*/- (cgfloat)tableview:(uitableview *)tableview estimatedheightforrowatindexpath:(nsindexpath *)indexpath

注意:該屬性或方法設定的數值不能太離譜,要盡量接近cell的真實高度。

在寫這個專案的時候,發現乙個問題,就是cell在iphone6上執行時,cell的寬度是320,問不是375,我現在也在蒐集資料,想明白。

不過放心,該專案中已經沒有這個問題了,具體的解決辦法等我弄明白了原因在介紹吧。

iOS開發之Masonry(一)

本文主要介紹masonry的簡單實用,並聯絡如何給控制項新增約束 mas makeconstraints。下面就馬上上 來使用。void viewdidload 1.green view 距離redview底部20,距離父控制項右邊100,自身寬高 200,100 greenview mas mak...

iOS開發之Masonry(三)

本文將介紹masonry另一種設定約束的方法 mas remakeconstraints 意思是重新設定約束。在此之前它會將控制項上的所有約束全部移除,在設定新約束。關鍵 如下 void viewdidload void click 開始執行動畫,設定約束 uiview animatewithdur...

iOS開發之Masonry(六)

本文介紹利用masonry約束scrollview上的子控制項,使得scrollview可以在約束的條件下滾動。核心 如下 建立scroll view uiscrollview scrollview uiscrollview alloc init self.view addsubview scrol...