整理一下: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;
}
相關文章
- ES6 - 整理一下Promise 的用法Promise
- 整理了一下angularJs的webpack模板AngularJSWeb
- 整理一下關於jq佇列和回撥佇列
- iOS 解決tableHeaderView新增searchBar後出現的問題iOSHeaderView
- kafka 第一次小整理(草稿篇)————整理一下自己的認知Kafka
- iOS 11 tableHeaderView 從navigaqtionBar 或者StatusBar下面開始iOSHeaderViewQT
- 整理了一下 Linux 中習見命令及分類Linux
- [精華] 整理一下各保險公司所使用的業務系統
- 整理了一下-Linux-中習見命令及分類Linux
- 關於springmvc中常用的註解,自己也整理一下SpringMVC
- 整理一下虛擬化與Linux的學習經歷Linux
- 整理了一下目前各Linux發行版的清單Linux
- 整理一下各種Flashback操作所需要用到的許可權
- 閒的蛋疼整理了一下Dockerfile的命令和引數備查Docker
- 好久沒面試了,整理並分享一下今天的面試題,明天再接再勵。面試題
- 簡單整理了一下最近遇到的一些面試題-面試進行中面試題
- 分享一下解決Dcat Admin左側選單不重新整理的問題
- 整理總結資料庫常用sql語句,建議收藏,忘記了可以來看一下資料庫SQL
- rust 語言試一下,記錄一下Rust
- java刷題整理--異常整理Java
- 試一下
- 是否在WinXP下再裝個Oracle?先整理了一下硬碟空間(自己安的軟體很雜啊……)Oracle硬碟
- 可以看一下引數情況,分析一下
- [BUG反饋]將1.0版本和1.1版本的BUG整理一下,看看有沒有還存在的。
- 最近合作的研發 leader 離職了 部門領導讓我整理一下需要獲取的交接資訊?
- js 整理JS
- webpack整理Web
- MacVIM 整理Mac
- TSQL整理SQL
- 面試整理面試
- 待整理
- Maven 整理Maven
- 儲存一下
- 總結一下
- 支援一下JdonFrameworkFramework
- 記錄一下
- > 測試一下
- 面試整理-Java綜合高階篇(吐血整理)面試Java