iOS_适配2

来源:互联网 发布:虎牙直播点歌软件 编辑:程序博客网 时间:2024/05/01 15:37

APP尺寸:
适配图片尺寸

1.根据宽高写frame:

define MYScreenW [UIScreen mainScreen].bounds.size.width

CGFloat btnW = MYScreenW*0.2

2.Autoresizing:
只适配父子关系视图,对兄弟关系的视图无法匹配。

3.AutoLayout:
参照
约束
代码实现步骤:
a.利用NSLayoutConstraint类创建具体的约束对象。
一个NSLayoutConstraint对象就代表一个约束。
创建约束常用的方法:
+(instancetype)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:常量

b.添加约束对象到相应的view上。
-(void)addConstraint:(NSLayoutConstraint*)constraint;
-(void)addConstraints:(NSArray*)constraints;

c.设置view下面的autoresizing功能为NO;
view.translatesAutoresizingMaskIntoConstraints =NO;

d.添加约束之前要保证相关控件都已经在各自的父控件上面.

e.不用再给view设置frame.

f.自动布局的核心公式
obj1.property1 = (obj2.property2*multiplier)+constraint value

g.添加约束规则是在创建约束之后,需要将其添加到作用的view上。在添加时要注意目标view需要遵循以下规则:
&对于两个同层级的view之间的约束关系,添加到他们的父View上。
&对于两个不同层级的view之间的约束关系,添加到他们最近的共同的祖父view上。
&对于有层次关系的两个view之间的约束关系,添加到层次较高的父view上。

4.autolayout+size class:
sizeclass是对当前所有iOS设备的一个抽象。适配iPhone4-5-6-6Plus,iPad,iPadMini,iWatch。
屏幕宽高分为三种情况(Compact,Regular,Any),紧凑、正常和任意,三三整合共9中情况。
具体代码还不会写。只能拖控件加约束设置。

0 0