整理一下:tableHeaderView
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.tableView];
[_tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(UIEdgeInsetsMake(20, 0, 0, 0));
}];
//底部bgView
self.bgView = [[UIView alloc]init];
self.bgView.backgroundColor = [UIColor greenColor];
//放迴圈滾動檢視
#define HeaderViewHeight 100
self.headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, HeaderViewHeight)];
self.headerView.backgroundColor = [UIColor redColor];
[self.bgView addSubview:self.headerView];
//最下面的展示文字
_content = [UILabel new];
_content.numberOfLines = 0;
_content.font = [UIFont systemFontOfSize:15];
self.content.text = @"有這麼一種需求,在列表頂端顯示一些別樣的資料,而這個別樣的資料則 需要通過一個別樣的 View 來展現,它便是 UITableView 的 tableHeaderView。倘若 tableHeaderView 裡的內容很固定,高度不要隨著內容的不同而改變,這樣還好。如果,高度是需要動態改變的,某些人(比如我)可能就會遇到這樣一個難題有這麼一種需求,在列表頂端顯示一些別樣的資料,而這個別樣的資料則需要通過一個別樣的 View 來展現,它便是 UITableView 的 tableHeaderView。倘若 tableHeaderView 裡的內容很固定,高度不要隨著內容的不同而改變,這樣還好。如果,高度是需要動態改變的,某些人(比如我)可能就會遇到這樣一個難題";
[self.bgView addSubview:_content];
//自己封裝的計算文字的size(展示時的字型font要和計算時的font一樣才準確)
CGFloat height = [self getLabelSize:self.content.text withFontSize:[UIFont systemFontOfSize:15] width:self.view.frame.size.width];
_content.frame = CGRectMake(0, HeaderViewHeight, self.view.frame.size.width, height);
CGRect newFrame = self.bgView.frame;
newFrame.size.height = newFrame.size.height+height+HeaderViewHeight;
self.bgView.frame = newFrame;
[self.tableView setTableHeaderView:self.bgView];
[self.tableView beginUpdates];
[self.tableView setTableHeaderView:self.bgView];
[self.tableView endUpdates];
}
計算文字高度的方法:
-(CGFloat)getLabelSize:(NSString *)string withFontSize:(UIFont *)font width:(CGFloat)width {
CGSize textSize = [string boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil].size;
return textSize.height;
}
相關文章
- 整理了一下angularJs的webpack模板AngularJSWeb
- ES6 - 整理一下Promise 的用法Promise
- iOS 解決tableHeaderView新增searchBar後出現的問題iOSHeaderView
- 整理一下關於jq佇列和回撥佇列
- kafka 第一次小整理(草稿篇)————整理一下自己的認知Kafka
- 整理了一下 Linux 中習見命令及分類Linux
- 關於springmvc中常用的註解,自己也整理一下SpringMVC
- 整理了一下目前各Linux發行版的清單Linux
- 整理了一下-Linux-中習見命令及分類Linux
- 整理一下虛擬化與Linux的學習經歷Linux
- 閒的蛋疼整理了一下Dockerfile的命令和引數備查Docker
- 讓你愛上整理名片,根本停不下來的神器!瞭解一下?
- 分享一下解決Dcat Admin左側選單不重新整理的問題
- 好久沒面試了,整理並分享一下今天的面試題,明天再接再勵。面試題
- 簡單整理了一下最近遇到的一些面試題-面試進行中面試題
- 整理總結資料庫常用sql語句,建議收藏,忘記了可以來看一下資料庫SQL
- rust 語言試一下,記錄一下Rust
- 🔥《吐血整理》保姆級系列教程 - 玩轉 Fiddler 抓包教程 (3)-再識 Fiddler 讓你感性認識一下
- 🔥《吐血整理》保姆級系列教程 - 玩轉 Fiddler 抓包教程 (2)-初識 Fiddler 讓你理性認識一下
- 試一下
- [BUG反饋]將1.0版本和1.1版本的BUG整理一下,看看有沒有還存在的。
- 最近合作的研發 leader 離職了 部門領導讓我整理一下需要獲取的交接資訊?
- 滬深股指重新整理年內第二大單日漲幅 個股無一下跌TJQ
- js 整理JS
- webpack整理Web
- hbase整理
- 待整理
- Linux整理Linux
- Maven 整理Maven
- 儲存一下
- 記錄一下
- > 測試一下
- phpstrom 快捷鍵,老是記不住哇! 記一下記一下!PHP
- 幫你整理 Java 中常見設計模式整理Java設計模式
- 思路整理篇
- Nmap指令整理
- MySQL 部分整理MySql
- 索引碎片整理索引