IOS自动布局之Autoresizing

本文介绍了iOS开发中自动布局的利器Autoresizing,包括其特性、使用场景和具体操作步骤。通过设置UIView的autoresizingMask属性,开发者可以实现视图在父视图大小变化时的自适应布局。文章通过实例展示了如何在Xcode中切换到Autoresizing布局,并通过组合不同的Autoresizing枚举值,实现灵活的界面布局效果,特别是在简化某些场景的布局工作时,比Autolayout更为便捷。

IOS自动布局之Autoresizing

对于现在的iOS开发,随着技术的不断升级,我们实现的功能也在不断的增多,但考虑到开发的便捷和高效性,很多人开始了可视化编程(当然也不排除有的依然钟爱纯代码)StoryBoard,Xib。一般用过的人都说好。既然提到了可视化编程,那UI布局就浮出水面了,IOS中的两大自动布局利器:Autoresizing 和 Autolayout。Autolayout的功能确实强大,这里我们介绍Autoresizing 。autoresizing是UIView的属性,一直都有,相比Autolayout(iOS6以后出现)功能性略低,但是有些案例,使用Autoresizing要比Autolayout更加便捷,两种布局方式各有利弊吧!扯完了,下面开始介绍Autoresizing的特性和简单实用。


1. Autoresizing特性

UIView有一个autoresizingMask的属性,这个属性是个枚举值

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
 UIViewAutoresizingNone                 = 0,
 UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
 UIViewAutoresizingFlexibleWidth        = 1 << 1,
 UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
 UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
 UIViewAutoresizingFlexibleHeight       = 1 << 4,
 UIViewAutoresizingFlexibleBottomMargin = 1 << 5

默认是UIViewAutoresizingNone也就是不会autoresize,但是我们可是设置其他的枚举值,对view的大小和位置进行自适应。

通常在Xcode里面创建的Xib是不会显示Autoresizing布局的,默认是Autolayout的,我们怎样才能显示Autoresizing布局呢?这样做:
(1)将xib里面的autolayout的选项去掉

这里写图片描述

(2) 打开那个尺子图标,就会显示autoresizing布局了

这里写图片描述

autoresizing布局图解:

这里写图片描述

PS: UIViewAutoresizingFlexibleHeight和UIViewAutoresizingFlexibleWidth只有当虚线变成实线的时候才会显示出效果,而 UIViewAutoresizingFlexibleLeftMargin,UIViewAutoresizingFlexibleRightMargin,UIViewAutoresizingFlexibleTopMargin,UIViewAutoresizingFlexibleBottomMargin是虚线显示效果,实线时去掉该效果。自己可以多尝试几遍。

  • UIViewAutoresizingNone view的frame不会随superview的改变而改变

  • UIViewAutoresizingFlexibleLeftMargin 自动调整view与superview左边的距离保证右边距离不变

  • UIViewAutoresizingFlexibleWidth 自动调整view的宽,保证与superView的左右边距不变,左右进行拉伸

  • UIViewAutoresizingFlexibleRightMargin 自动调整view与superview右边的距离保证左边距不变

  • UIViewAutoresizingFlexibleTopMargin 自动调整view与superview顶部的距离保证底部距离不变

  • UIViewAutoresizingFlexibleHeight 自动调整view的高,保证与superView的顶部和底部距离不变,上下可以拉伸

  • UIViewAutoresizingFlexibleBottomMargin
    自动调整view与superview底部部的距离保证顶部距离不变

2. Autoresizing使用场景

下面看一下一些组合的场景使用:

这里写图片描述

举个栗子:

我要实现这样一个效果:

这里写图片描述

分享五个按钮平均分配在界面上,如果使用autolayout我们要考虑设置比例,每个的大小等等,这里我们使用Autoresizing就相对便捷了,当然了看个人的习惯了,一般我就是两种布局方式混用,哪种方便适合用哪种。

首先呢,设置一个View在上面添加五个Button就可以了,设置之间的距离,

选择自动调整view的宽,保证与superView的左右边距不变,左右进行拉伸,自动调整view与superview底部部的距离保证顶部距离不变

这里写图片描述

在单独设置每个按钮的位置和大小,左边距、右边距、下边距按比例调整,

这里写图片描述

这样就OK了,自己多试几遍了解Autoresizing的使用就可以了,很方便的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值