UIView控件 、 autolayout 、transform属性及如何修改控件的位置和尺寸

(1)UIView的常见属性

@property(nonatomic,readonly) UIView *superview;
获得自己的父控件对象


@property(nonatomic,readonly,copy) NSArray *subviews;
获得自己的所有子控件对象


@property(nonatomic) NSInteger tag;
控件的ID\标识,父控件可以通过tag来找到对应的子控件


@property(nonatomic) CGAffineTransform transform;
控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)

@property(nonatomic) CGRect frame;
控件所在矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)


@property(nonatomic) CGRect bounds;
控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x\y一般为0)


@property(nonatomic) CGPoint center;
控件中点的位置(以父控件的左上角为坐标原点)

2.UIKit坐标系

在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸


2.UIView的常见方法

- (void)addSubview:(UIView *)view;
添加一个子控件view


- (void)removeFromSuperview;
从父控件中移除


- (UIView *)viewWithTag:(NSInteger)tag;
根据一个tag标识找出对应的控件(一般都是子控件)


(2).autolayout

如果发现通过代码无法修改控件的位置或者尺寸时,应该去掉storyboard里面的autolayout功能,这是自iOS6开始出现的特性


顾名思义,autolayout是用来自动布局的,用来束缚控件的位置和尺寸。去掉这个功能,控件的位置和尺寸就不再有一些固定的束缚。


(3)transform属性

利用transform属性可以修改控件的位移(位置)、缩放、旋转


创建一个transform属性
CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx,  CGFloat ty) ;
CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy);
CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle)
(angle是弧度制,并不是角度制)


在某个transform的基础上进行叠加
CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty);
CGAffineTransform CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy);
CGAffineTransform CGAffineTransformRotate(CGAffineTransform t, CGFloat angle);


清空之前设置的transform属性
view.transform = CGAffineTransformIdentity;

(4)修改控件的位置和尺寸

通过以下属性可以修改控件的位置
frame.origin
center

通过以下属性可以修改控件的尺寸
frame.size
bounds.size

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值