1、位移
当需要修改视图对象的位置时(上移、下移、左移、右移),可以通过修改视图对象的center和frame属性。
需要注意的是,不能直接修改结构体变量的值。下面的代码实现了左移效果。
-(IBAction)move:(id)sender{
CGPointpoint=self.myView.center;
point.x-=10;
self.myView.center=point;
NSLog(@"myview frame :%@",NSStringFromCGRect(self.myView.frame));
}
2、放大/缩小
当需要修改视图对象的大小时,有两种方法可以完成,第一种方法可以修改视图对象的bounds.size属性,第二种方法是直接修改视图对象的transform属性,即让视图对象进行一次形变操作。在修改形变属性时,需要使用到如下的函数,其中:sx以及sy是在X轴以及Y轴两个方向上放大的比例。
CG_EXTERNCGAffineTransformCGAffineTransformScale(CGAffineTransformt,
CGFloatsx,CGFloatsy)CG_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_2_0);
下面的示例代码,实现分别在X轴和Y轴方向放大1.1倍。
-(IBAction)scale:(id)sender{
self.myView.transform=CGAffineTransformScale(self.myView.transform,1.1,1.1);
NSLog(@"myview frame :%@",NSStringFromCGRect(self.myView.frame));
}
3、旋转
通过修改视图对象的transform属性,可以实现视图的顺时针旋转以及逆时针旋转,此时需要使用到如下函数,其中,angle属性是旋转的角度。
CG_EXTERNCGAffineTransformCGAffineTransformRotate(CGAffineTransformt,
CGFloatangle)CG_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_2_0);
下面的示例代码,实现了顺时针旋转45度。
-(IBAction)rotate:(id)sender{
self.myView.transform=CGAffineTransformRotate(self.myView.transform,M_PI_4);
NSLog(@"myview frame :%@",NSStringFromCGRect(self.myView.frame));
}
4、重置transform属性
当需要重置transform属性时,可以进行如下设置。但要注意的是:假如需要完全重置一个视图的样式,除了重置transform属性之外,还需要重置frame, center, bounds。
-(IBAction)reset:(id)sender{
self.myView.transform=CGAffineTransformIdentity;
}
网友评论