1.移动位置 origin.x y 2.形变属性 transfrom 3缩放 scale

本文介绍了移动位置、形变属性transform和缩放scale在UI设计中的应用。通过修改origin.x和y实现UI移动,使用transform进行旋转,并通过scale实现UI的放大或缩小。详细展示了代码实现这些效果的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="font-family: Arial, Helvetica, sans-serif;font-size:14px;">1.移动位置 origin.x   y</span>
<span style="font-family: Arial, Helvetica, sans-serif;font-size:14px;">2.形变属性 transfrom</span>
<span style="font-family: Arial, Helvetica, sans-serif;font-size:14px;">3缩放  scale</span>
<span style="font-family: Arial, Helvetica, sans-serif;font-size:14px;">
</span>
<span style="font-family: Arial, Helvetica, sans-serif;font-size:14px;">//移动一个UI.只要操作这个UI的origin x或y的值</span>
<span style="font-size:14px;">- (IBAction)move:(UIButton *)sender {
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0];
    CGRect tempFrame = _bigButton.frame;
    //判断点击了哪个按钮
    switch (sender.tag) {
        case 1:
            tempFrame.origin.y -= kDelta;
            break;
        case 2:
            tempFrame.origin.y += kDelta;
            break;
        case 3:
            tempFrame.origin.x -= kDelta;
            break;
        case 4:
            tempFrame.origin.x += kDelta;
            break;
        default:
            break;
    }
    _bigButton.frame = tempFrame;
    [UIView commitAnimations];
}
//transform是形变属性.rotate是按照一定的角度
- (IBAction)rotationLift:(UIButton *)sender {
    //动画开始
    [UIView beginAnimations:nil context:nil];
    //动画持续时间
    [UIView setAnimationDuration:1.0];
    if (sender.tag == 20) {
        //
        _bigButton.transform = CGAffineTransformRotate(_bigButton.transform, (-M_PI_4));
    }else if (sender.tag == 21){
        _bigButton.transform = CGAffineTransformRotate(_bigButton.transform, M_PI_4);
    }
    //动画commit是交付的意思.开始运行动画
    [UIView commitAnimations];
}

//scale(比例),放大或者缩小
- (IBAction)zoom:(UIButton *)sender {
    //使用了三目运算符.因为连接到这个方法的按钮只有两个,所以不用判断另外
    //一个按钮得tag.
    CGFloat scale = sender.tag == 32 ? 1.2 : 0.8;
    _bigButton.transform = CGAffineTransformScale(_bigButton.transform, scale, scale);
    
}</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值