日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

让tableView的高度等于contentSize的高度、动态调整tableView的高度、tableView的高度自适应布局...

發布時間:2025/6/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 让tableView的高度等于contentSize的高度、动态调整tableView的高度、tableView的高度自适应布局... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章概要:

1、簡介下,tableView中的內容如何高度自適應的布局

2、如何做到讓tableView的高度動態調整


還是看圖作文吧~

首先,tableView的高度就是用戶能夠看見里面更大世界的那個窗口的大小,一般是固定的。

然后在cell里面布局的時候,像圖中粉紅色的view展示的內容需要全部展示出來,這樣的話這個粉紅view的高度就需要是動態變化的。比如一個UILabel,因為它是屬于有內置大小的控件(自身的size通過其內部的內容所決定可以自身計算出來的控件),你只需要設置這個label的原點(x,y)和寬度就行了,當然還要設置lineNumber = 0(不限制行數)。然后cell的高度不要設定成固定數值,cell的高度由內部view決定。

tableView是scrollView的子類,那如何設置contentSize呢?由最后一個cell的底部決定。

OK。這就是我們一般做的tableViewCell高度自適應的布局方式,思維發散下,我們直接用scrollView的時候,設置contentSize也要用這種布局策略:由內部決定外部。

-----------

然后第二個需求是這樣的:打開軟件彈出贈送的優惠券列表,優惠券多的情況下就固定tableView的高度,讓里面的內容可以滾動。如果優惠券少的情況下,里面的內容不足以滾動的情況下,就讓tableView本身的高度變為“剛好”能展示里面的內容就行了。

將這個需求轉化為技術語言的話就是,給定tableView的contentView一個最大的高度MaxHeight,如果contentView的真實高度小于MaxHeight的時候,tableView的高度就是contentView的真實高度,如果contentView的真實高度大于MaxHeight的時候,tableView的高度就固定在MaxHeight。

實現代碼:

- (void)setupMonitor {[self.homePageCouponsTableView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil]; }- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {CGRect tableFrame = self.homePageCouponsTableView.frame;tableFrame.size = self.homePageCouponsTableView.contentSize;if (tableFrame.size.height < 280) {[self.homePageCouponsTableView mas_remakeConstraints:^(MASConstraintMaker *make) {make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(10);make.left.mas_equalTo(self.bgView.mas_left).offset(15);make.right.mas_equalTo(self.bgView.mas_right).offset(-15);make.bottom.mas_equalTo(self.bgView.mas_bottom).offset(-25);make.height.mas_equalTo(tableFrame.size.height);}];[self.homePageCouponsTableView.superview layoutIfNeeded];} }

?

轉載于:https://www.cnblogs.com/cchHers/p/9418562.html

總結

以上是生活随笔為你收集整理的让tableView的高度等于contentSize的高度、动态调整tableView的高度、tableView的高度自适应布局...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。