iOS -- autoResizingMask使用(转)

autoResizingMask 是UIView的一个属性,在一些简单的布局中,使用autoResizingMask,可以实现子控件相对于父控件的自动布局。

autoResizingMask 是UIViewAutoresizing 类型的,其定义为:

@property(nonatomic) UIViewAutoresizing autoresizingMask;    // simple resize. default is UIViewAutoresizingNone

UIViewAutoresizing 是一个枚举类型,默认是 UIViewAutoresizingNone,其可以取得值有:

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

不会随父视图的改变而改变

UIViewAutoresizingFlexibleLeftMargin

自动调整view与父视图左边距,以保证右边距不变

UIViewAutoresizingFlexibleWidth

自动调整view的宽度,保证左边距和右边距不变

UIViewAutoresizingFlexibleRightMargin

自动调整view与父视图右边距,以保证左边距不变

UIViewAutoresizingFlexibleTopMargin

自动调整view与父视图上边距,以保证下边距不变

UIViewAutoresizingFlexibleHeight

自动调整view的高度,以保证上边距和下边距不变

UIViewAutoresizingFlexibleBottomMargin

自动调整view与父视图的下边距,以保证上边距不变

注意:autoResizingMask 既可以在代码中直接使用,也可以在UIStoryboard中使用。

一个代码中使用autoResizingMask的例子:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UIViewController *viewController = [[UIViewController alloc] init];
    self.window.rootViewController = viewController;
    self.window.backgroundColor = [UIColor whiteColor];

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(20,100,200,100)];
    [view setBackgroundColor:[UIColor grayColor]];
    [self.window addSubview:view];

    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(20,20,50,50)];
    [button setBackgroundColor:[UIColor whiteColor]];
    [view addSubview:button];
    //距离父视图右边距不变
    //button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
    //距离父视图的左边距不变
    //button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
    //距离父视图的左右边距不变,button大小会调整
    //button.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    //view.frame = CGRectMake(20,100,300,100);

    //距离父视图的下边距不变
    //button.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;
    //距离父视图的上边距不变
    //button.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin;
    //距离父视图的上下边距不变,button大小会调整
    button.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    view.frame = CGRectMake(20,100,200,200);

    [self.window makeKeyAndVisible];
    return YES;
}

另外,autoResizingMask 可以组合使用。例如:

button.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin;

表示的是,子控件相对于父控件的顶部和右侧的距离不变。

时间: 2024-08-24 11:29:21

iOS -- autoResizingMask使用(转)的相关文章

iOS开发-AutoresizingMask

关于ios的控件的AutoresizingMask属性   个人测试的一些结果 setAutoresizingMask控件的自适应 UIViewAutoresizingNone                 = 0, UIViewAutoresizingFlexibleLeftMargin   = 1 << 0, UIViewAutoresizingFlexibleWidth        = 1 << 1, UIViewAutoresizingFlexibleRightMarg

iOS开发 autoResizingMask使用

autoResizingMask 是UIView的一个属性,在一些简单的布局中,使用autoResizingMask,可以实现子控件相对于父控件的自动布局. autoResizingMask 是UIViewAutoresizing 类型的,其定义为: @property(nonatomic) UIViewAutoresizing autoresizingMask; // simple resize. default is UIViewAutoresizingNone UIViewAutoresi

ios 中的autoresizingMask(转载)

原文地址如下,感谢原作者!推荐原地址阅读!我在他的基础上写了一点自己的心得. http://www.cnblogs.com/jiangyazhou/archive/2012/06/26/2563041.html 在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. enum {    UIViewAutoresizingNone                 = 0,    UIViewAuto

ios开发之--关于UIView的autoresizingMask属性的研究

在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. enum { UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutoresizingFlexibleWidth = 1 << 1, UIViewAutoresizingFlexibleRightMargin = 1

iOS Core Animation Advanced Techniques(一):图层树、寄宿图以及图层几何学

(一)图层的树状结构 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角. Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存储在一个叫做图层树的体系之中.于是这个树形成了UIKit以及在iO

IOS总结(学习过程中整理的笔记)

MVC模式:(model+view+controller):是一种帮你把代码功能和显示划分出来的设计模式: model:较为底层的数据引擎,负责管理实体中所继承的数据: view:和用户交互界面: controller:连接二者的桥梁: cocoa frameworks 有两个框架: foundation foundation  是cocoa中最基本的一些类:再mac应用程序中负责对象管理,内存管理,容器等相关数据: uikit: uikit:为程序提供可视化的底层构架,包括窗口,视图,控件类和

iOS开发UI篇—屏幕适配autoResizing autoLayout和sizeClass图文详解

1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基本不用怎么适配布局,所有的ui控件只要相对父控件布局就可以了,没错autoResizing就是一个相对于父控件的布局解决方法:注意:它只能相对父控件布局:***在xcode中可以通过可视化的界面调整也可以通过代码去控制 在用autoResizing的时候需要关闭autoLayout和sizeclas

iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

iOS开发系列--音频播放.录音.视频播放.拍照.视频录制 转载:http://www.cnblogs.com/kenshincui/p/4186022.html#avFoundationCamera --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音

iOS — Autolayout之Masonry解读

前言 1 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了 在iphone4-iphone4s时代 苹果推出了retina屏 但是给了码农们非常大的福利:window的size不变 在iphone5-iphone5s时代 window的size变了(320,568) 这时auto