IOS-UI-transform

本文详细介绍了UIKit中视图的变换方法,包括平移、旋转和缩放等操作,并提供了具体的实现代码示例。此外还讲解了如何正确使用bounds和center来替代frame实现动画效果。

/ viewWithTag: 传递一个tag值, view 会根据tag值, 查找对应的view
UILabel *label = [self.view viewWithTag:10];

// 一旦执行了 addSubView: 时候, 就相当于 self.View 对 被添加的view 有一个强指针
[self.view addSubview:button];

以后在定义 UI控件属性的时候使用 weak 修饰符
@property (nonatomic, weak) UIButton *button;

//实例化button
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];

// 为全局属性进行赋值
self.button = button;

/**
property 的本质
set方法
get方法
_属性名称
*/

 

一. transform 属性 , 做形变
平移:
CGAffineTransformMakeTranslation(10, 0) : 在初始位置的基础上进行平移
CGAffineTransformTranslate(self.redView.transform, 10, 0) 可以多次生效, 以当前状态为基础

旋转:
CGAffineTransformMakeRotation:angle : 是弧度
M_PI_4 : 45°

如果传值为负 : 逆时针进行旋转

CGAffineTransformMakeRotation(M_PI_4)
CGAffineTransformRotate(self.redView.transform, -M_PI_4)

缩放:
CGAffineTransformMakeScale(1.2, 1.2) : x轴上放大1.2倍, y 轴上放大1.2 倍

如果想要缩小, 就传递小于1的值, 如果传递为负值, 这个view 就疯了

CGAffineTransformMakeScale(1.2, 1.2)
CGAffineTransformScale(self.redView.transform, 0.8, 0.5)

// 当view 的transform 发生变化的时候, 会影响到 frame , 所以, 如果做动画, 就用bounds 和 center 来代替
animatable. do not use frame if view is transformed since it will not correctly reflect the actual location of the view. use bounds + center instead

转载于:https://www.cnblogs.com/DreamLinku/p/5393744.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值