[关闭]
@SanMao 2015-08-06T00:34:48.000000Z 字数 1956 阅读 1266

Autolayout

UI


iPhone4之前

  1. //#define ScreenW 320
  2. //#define ScreenH 480
  3. #define ScreenW [UIScreen mainScreen].bounds.size.width
  4. #define ScreenH [UIScreen mainScreen].bounds.size.height
  5. // 创建一个显示在屏幕右下角的按钮
  6. CGFloat buttonW = 100;
  7. CGFloat buttonH = 50;
  8. button.frame = CGRectMake(ScreenW - buttonW, ScreenH - buttonH, buttonW, buttonH);

iPad出现以后

  1. + (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views;
* format :VFL语句
* opts :约束类型
* metrics :VFL语句中用到的具体数值
* views :VFL语句中用到的控件

* 出现了一种新的屏幕适配技术:Sizeclass

Autoresizing

Autolayout

  1. - (void)addConstraint:(NSLayoutConstraint *)constraint;
  2. - (void)addConstraints:(NSArray *)constraints;
  1. view.translatesAutoresizingMaskIntoConstraints = NO;
* 添加约束之前,一定要保证相关控件都已经在各自的父控件上
* 不用再给view设置frame
  1. +(id)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;
* view1 :要约束的控件
* attr1 :约束的类型(做怎样的约束)
* relation :与参照控件之间的关系
* view2 :参照的控件
* attr2 :约束的类型(做怎样的约束)
* multiplier :乘数
* c :常量
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注