iOS ui属性之center,bounds,transframe

文章来源:http://www.cnblogs.com/wendingding/p/3742073.html
frame,center和bounds属性

1.frame、center和bounds属性
frame:控制位置和大小
center:控制位置(中心点)
bounds:控制大小(以自己的左上角为原点)
2.注意点
(1)通过以下属性可以修改控件的位置

frame.origin

center

(2)通过以下属性可以修改控件的尺寸

frame.size

bounds.size

//使用bounds,以中心点位原点进行缩放
         CGRect bounds = self.headImageView.bounds;
         if (btn.tag) {
                 bounds.size.height+=30;
                 bounds.size.width+=30;
            }
         else
             {
                     bounds.size.height-=50;
                     bounds.size.width-=50;
                }

3

 @property (weak, nonatomic) IBOutlet UIButton *headImageView;
 // 在OC中,不允许直接修改“对象”的“结构体属性”的“成员”
     // 允许修改“对象”的“结构体属性”
  // 1. 取出结构体属性
    CGRect rect = self.headImageView.frame;
    // 2. 修改结构体成员
    rect.origin.y -= 20;
    // 3. 设置对象的结构体属性
    self.headImageView.frame = rect;

4.// 枚举类型实质上就是一个整数,作用就是用来替代魔法数字
// 枚举类型中,指定了第一个整数之后,后面的数字会递增
// magic number魔法数字,其他程序员看到代码的时候,不知道是什么意思

 typedef enum
{
     kMovingDirTop = 10,
     kMovingDirBottom,
     kMovingDirLeft,
     kMovingDirRight,
 } kMovingDir;

5.// 首尾动画

    // beginAnimations表示此后的代码要“参与到”动画中
    [UIView beginAnimations:nil context:nil];
     [UIView setAnimationDuration:2.0];

   self.headImageView.bounds = rect;
 //    self.headImageView.alpha = 0;

 // commitAnimations,将beginAnimation之后的所有动画提交并生成动画
   [UIView commitAnimations];

6.transform属性

在OC中,通过transform属性可以修改对象的平移、缩放比例和旋转角度

常用的创建transform结构体方法分两大类

(1) 创建“基于控件初始位置”的形变

CGAffineTransformMakeTranslation(平移)

//位移(不累加)
         self.headImageView.transform=CGAffineTransformMakeTranslation(50, 200);

CGAffineTransformMakeScale(缩放)

//缩放
         self.headImageView.transform=CGAffineTransformMakeScale(1.2, 10);

CGAffineTransformMakeRotation(旋转)

self.headImageView.transform=CGAffineTransformMakeRotation(-M_PI);

(2) 创建“基于transform参数”的形变

CGAffineTransformTranslate

//在原有的基础上位移(是累加的)
         self.headImageView.transform=CGAffineTransformTranslate(self.headImageView.transform, 50, 50);

CGAffineTransformScale

//在原有的基础上进行缩放
        self.headImageView.transform=CGAffineTransformScale(self.headImageView.transform, 1, 1.7);

CGAffineTransformRotate

       //旋转角度为1/pi,逆时针  在原有的基础上旋转
                 self.headImageView.transform=CGAffineTransformRotate(self.headImageView.transform, -M_1_PI);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值