Autoresizing

一丶 Autoresizing


1.1 摘要: 苹果在iOS2中引入了Autoresizing技术用于屏幕适配, 用于在其父视图的bounds发生改变时如何自动调整如何调整自身布局(大小)

1.2 使用:
  • ⚠️ Autoreszing 与 Auto Layout 二者不能共存,Xcode中默认开启了Autolayout技术, 在使用Autoresizing技术前需要手动将其关闭


    关闭Auto Layout.png
  • autoresizingMask属性: autoresizingMask属性的设置由六根线标识, 其中位于外部的四根线分别用于标识用于父视图的bounds发生改变时自动调整与父视图的上、下、左、右边距; 位于内部的两根线分别用于标识如何自动调整自身的宽度和高度
  • 默认autoresizingMask标识的情况下
    autoresizingMask属性.png
    默认autoresizingMask标识.jpg
  • 设置autoresizingMask距离父视图的右边与底部的标识
    距离父视图的右边与底部的标识.png
    效果图
  • 设置autoresizingMask自动调整自身的宽度和高度


    距离父视图的右边与底部的标识.png

    自动调整自身的宽度和高度效果图.png
  • 代码实现

    /*
     UIViewAutoresizingNone                 = 0, //不会根据父控件的改变而进行改变
     UIViewAutoresizingFlexibleLeftMargin   = 1 << 0, 自动调整距离父控件左边边距(也就是距离右边边距是固定的)
     UIViewAutoresizingFlexibleWidth        = 1 << 1, 自动调整宽度根据父控件的宽度发生变化而变化
     UIViewAutoresizingFlexibleRightMargin  = 1 << 2, 自动调整距离父控件u右边边距
     UIViewAutoresizingFlexibleTopMargin    = 1 << 3, 自动调整距离父控件顶部边距
     UIViewAutoresizingFlexibleHeight       = 1 << 4, 自动调整高度根据父控件的高度发生变化而变化
     UIViewAutoresizingFlexibleBottomMargin = 1 << 5  自动调整距离父控件底部边距
     */
    CGFloat H = [UIScreen mainScreen].bounds.size.height;
    CGFloat W = [UIScreen mainScreen].bounds.size.width;
    UIView *blueView =  [[UIView alloc] initWithFrame:CGRectMake(W-100, H-100, 100, 100)];
    blueView.backgroundColor = [UIColor blueColor];
    blueView.autoresizingMask  = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:blueView];

你可能感兴趣的:(Autoresizing)