iOS开发之Animation简单使用基础详解,简单地仿射变换CGAffineTransform

 联系我们     |      2019-11-29 08:57

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

UItableView,UITableViewHeaderFooterView分组头部的重用机制,简单地仿射变换CGAffineTransform 怎样设置包括第一栏在内相同高度的section(小技巧,...

基础知识

1.CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty)(平移:设置平移量)

2.CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)(缩放:设置缩放比例)仅通过设置缩放比例就可实现视图扑面而来和缩进频幕的效果。

3.CGAffineTransformMakeRotation(CGFloat angle)(旋转:设置旋转角度)

CGAffineTransformIdentity : 单位矩阵变换,一般用于仿射变换的初始化或者还原。
CGAffineTransformEqualToTransform(CGAffineTransform t1,
CGAffineTransform t2) : 判断两个变换矩阵是否相等

CGAffineTransformConcat(CGAffineTransform t1,
CGAffineTransform t2) : 得到两个矩阵相加后得到的最终矩阵

CGPoint CGPointApplyAffineTransform(CGPoint point,
CGAffineTransform t) : 某点通过矩阵变换之后的点

CGSize CGSizeApplyAffineTransform(CGSize size, CGAffineTransform t) : 某个size通过矩阵变换之后的size

CGRect CGRectApplyAffineTransform(CGRect rect, CGAffineTransform t) : 某个Rect通过矩阵变换之后的区域
*/

github地址:https://github.com/Dzhijian/ZJAnimationDemo.git

上一篇:没有了 下一篇:的发布的重要意义【lom599乐百家手机】