ios UItableView,UITableViewHeaderFooterView分組頭部的重用機制,簡單地仿射變換CGAffineTransform
怎樣設定包括第一欄在內相同高度的section(小技巧,雖然容易但容易忽略)
*第一步,在viewdidload裡將尾部設為0,table.sectionFooterHeight = 0;(代理方法)- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 0;
}雖然也可以設定尾部高度,但是設定後沒有效果
第二步,調用tableView的代理方法- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 30;
}設定頭部高度為30;
運行結果
自訂分組頭部的重複利用(類似cell)
如果自訂分組頭部
為了記憶體最佳化,可以使用類似cell的重用機制來實現
#pragma mark - 自訂分組頭部
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
static NSString * identy = @"headFoot";
UITableViewHeaderFooterView * hf = [tableView dequeueReusableHeaderFooterViewWithIdentifier:identy];
if (!hf) {
NSLog(@"%li",section);
hf = [[UITableViewHeaderFooterView alloc]initWithReuseIdentifier:identy];
UIView * view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
view.backgroundColor = [UIColor redColor];
[hf addSubview:view]; (若將此注釋:view未添加)
}
// hf.contentView.backgroundColor = [UIColor purpleColor];(去掉此行注釋:可設定hf。contentView背景色),若此行和上一行都不注釋,顯示紅色
return hf;
}
仿射變換
- (void)clickAction{
// 仿射變換
// [UIView animateWithDuration:0.5 animations:^{
// // 執行一次
//// self.rectView.transform = CGAffineTransformMakeTranslation(100, 100);
// // 在self.rectView.transform現在的基礎上繼續執行
//// self.rectView.transform = CGAffineTransformTranslate(self.rectView.transform, 100, 100);
// }];
//
// // 仿射比例
// [UIView animateWithDuration:0.5 animations:^{
// // 執行一次
// self.rectView.transform = CGAffineTransformMakeScale(5, 0.5);
// // 在self.rectView.transform現在的基礎上繼續執行
//// self.rectView.transform = CGAffineTransformScale(self.rectView.transform, 2, 2);
// self.rectView.transform = CGAffineTransformMakeTranslation(100, 100);
//
// }];
// 仿射旋轉
[UIView animateWithDuration:0.5 animations:^{
// 100度
CGFloat degree100 = 100/180.0*M_PI;
CGFloat degree45 = M_PI_4;
// 執行一次
// self.rectView.transform = CGAffineTransformMakeRotation(M_PI_4);
// 在self.rectView.transform現在的基礎上繼續執行
self.rectView.transform = CGAffineTransformRotate(self.rectView.transform, degree100);
}];
}
ios UItableView,UITableViewHeaderFooterView分組頭部的重用機制,簡單地仿射變換CGAffineTransformios UItableView,UITableViewHeaderFooterView分組頭部的重用機制,簡單地仿射變換CGAffineTransformios UItableView,UITableViewHeaderFooterView分組頭部的重用機制,簡單地仿射變換CGAffineTransform