用代码来控制自定义的控件 自动适应横竖屏时的相对位置
2012-11-01 10:17
453 查看
主要是通过setAutoresizingMask这个属性来设置;
例如:要一个button按钮始终居中显示
首先始化UIButton *btn的坐标位置(如果你想自适应,要使用相对坐标来设置btn的frame;这样开始时不管是横屏还是竖屏,获取的屏幕宽度都是当前屏幕的宽度,后面自适应属性才会正确)
btn.frame = CGRectMake(self.frame.size.width/2-20,
0, 40,30)];//btn在屏幕中间;
[btn setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;//使其左右宽度都自适应即居中
其效果和用IB设置的一样。
参考:例如下面的代码设置和下面图片中在IB中设置的效果是一样的:
[btn
setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin];
例如:要一个button按钮始终居中显示
首先始化UIButton *btn的坐标位置(如果你想自适应,要使用相对坐标来设置btn的frame;这样开始时不管是横屏还是竖屏,获取的屏幕宽度都是当前屏幕的宽度,后面自适应属性才会正确)
btn.frame = CGRectMake(self.frame.size.width/2-20,
0, 40,30)];//btn在屏幕中间;
[btn setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;//使其左右宽度都自适应即居中
其效果和用IB设置的一样。
参考:例如下面的代码设置和下面图片中在IB中设置的效果是一样的:
[btn
setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin];
ios的AutoresizingMask属性
在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高。 enum { UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutoresizingFlexibleWidth = 1 << 1, UIViewAutoresizingFlexibleRightMargin = 1 << 2, UIViewAutoresizingFlexibleTopMargin = 1 << 3, UIViewAutoresizingFlexibleHeight = 1 << 4, UIViewAutoresizingFlexibleBottomMargin = 1 << 5 }; typedef NSUInteger UIViewAutoresizing; 分别解释以上意思。 UIViewAutoresizingNone就是不自动调整。 UIViewAutoresizingFlexibleLeftMargin就是自动调整与superView左边的距离,也就是说,与superView右边的距离不变。 UIViewAutoresizingFlexibleRightMargin就是自动调整与superView的右边距离,也就是说,与superView左边的距离不变。 UIViewAutoresizingFlexibleTopMargin UIViewAutoresizingFlexibleBottomMargin UIViewAutoresizingFlexibleWidth UIViewAutoresizingFlexibleHeight 以上就不多解释了,参照上面的。 也可以多个枚举同时设置。如下: subView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin |UIViewAutoresizingFlexibleRightMargin; 如果有多个,就用“|”关联。 还有一个属性就是autoresizesSubviews,此属性的意思就是,是否可以让其subviews自动进行调整,默认状态是YES,就是允许,如果设置成NO,那么subView的autoresizingMask属性失效。
相关文章推荐
- 用代码来控制自定义的控件 自动适应横竖屏时的相对位置
- RadioButtton java代码实现左右带自定义的图片,并且控制字体与图片间距,同时控件长度对其功能。
- IOS-26-自定义Item控件在横竖屏运行时大小位置紊乱
- 动态代码中设置控件相对位置
- 让系统自动控制控件在控制器视图的位置
- IOS TableView的Cell高度自适应,UILabel自动换行适应 table里控件位置自适应
- 动态创建的控件,如何控制相对位置
- 让系统自动控制控件在控制器视图的位置
- MFC中控件的大小和位置自定义代码
- 一个为扩展过的自定义DataGridiew控件提供多行表头重绘所需的TreeNode和Columns代码,以满足列自动增加的功能。大家看看帮忙优化下
- 【IOS 开发学习总结-OC-41】★★ios开发——代码控制 UI 界面与 UI 控件的自定义
- asp.net 自定义翻页,无需外部dll控件(Asp.net自动生成三层代码 第五集 )
- IOS5开发-控件位置适应屏幕旋转代码
- 代码中动态设置相对布局里控件的位置
- 在Winform中更改控件导致designer中代码自动移除解决方法
- Android自定义图片自动轮播控件:imagecycleview
- eclipse左边导航(菜单栏)package explorer自动定位(跟随打开的代码变化位置)、导航栏消失找不到解决
- 利用subversion(SVN)自动控制和维护代码的版本号.
- Android 自定义自动换行控件
- php自动适应范围的分页代码