美文网首页
UIView详解之三:视图的形变

UIView详解之三:视图的形变

作者: 赵亦晨 | 来源:发表于2016-11-08 16:31 被阅读0次

    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;

    }

    相关文章

      网友评论

          本文标题:UIView详解之三:视图的形变

          本文链接:https://www.haomeiwen.com/subject/qgnauttx.html