1104-Autorezing(淘汰了) & autoLayout(xcode6)

----------------------------

autoResizing

 

-------------------------------------


新项目建议用storyboard + xib   学习中用代码主要为了搞定旧的项目
初学者不建议的做法:A控件按住Ctrl拖到B控件上也可以设置约束  

autoResizing 居中显示的效果   应取消所有的布局线   距离上下左右不固定   就居中了
autoResizing 不能相对布局

autoLayout  解放了屏幕适配问题

autoLayout用模拟器来调试  

 

X Y 宽度高度没有问题就可以了

-----------------

leading Edges  2个或多个控件 左对齐   需要同时选择2个控件才能设置
Ttailing Edges 2个或多个控件 右对齐
Top Edges      2个或多个控件 顶部对其
Bottom Edges  2个或多个控件  底部对齐

Horizontal Centers  2个或多个控件  水平居中
Vertical Centers     2个或多个控件  垂直对齐
Baselines              2个或多个控件  基于某条线对齐

Horizontal Centers in Container   在父控件中  水平居中对齐
Vertical Center in Container 在父控件中  垂直居中对齐

---------------

Constrain to margins ios8新特性   勾选后会左边和右边显示完后 多出一个margin

Width 控件宽度
Height  控件高度

Equal Widths  2个或多个控件 一样宽   需要选择2个控件才能设置   2个控件都一条线  
Equal Heights 2个或多个控件 一样高
Aspect Ratio 比例
Align 对齐方式

注意:Equal Widths 设置完了,再修这个约束 设置Multiplier0.5表示只有一半宽度   

--------

口诀:红色view的宽度强制右边 = (蓝色view的宽度 +0 )*0.5
priority 在开发中一般不用   一般修改second item  的属性     和constant

----

这个和autoResizing功能一样 距离上下左右的距离固定

-

选择相对哪个控件 固定位置

Top Layout Guide 状态栏

--------------

黄色警告可以不用管    点击自动修复   不点击也没问题   主要是用来观看添加约束后的效果用的

黄色警告标示 需要修复界面显示
设置上下左右距离固定后出现黄色警告   需要手动选择一些更新 Frame 当前控件就会出现跟随 固定设置调整frame了
不要随便多增加约束 可能会导致约束冲突    应该修改约束

----------

items of New Constraints更新当前控件的frame

-------

课堂笔记.m:

 

或者约束冲突   

 ---------------------

约束被添加的位置

A自身  如果子控件设置自身的宽高   约束会添加到子控件A自身里面


口诀:2个控件有关系   约束添加到组织最近的老大身上

兄弟关系
A控件 与 B控件     A控件添加约束   距离B左边固定        那么约束会添加到A 和B所在的父控件里面

父子关系 或者祖孙关系
A父控件里面有B子控件   子控件B添加约束距离父控件A左边 固定     那么约束会添加到父控件A里面

非直系亲兄弟关系 的不同控件之间

-
A控件和B控件的父控件不相同    A控件添加约束  距离B左边固定    那么约束会添加到    A 和 B距离最近的祖先里面

-----

 

代码实现autoLayout    为了应付纯代码的旧项目 

虽然VFL语言 实现 autoLayout 还算可以   但是优先还是用storyboard   因为效率高  不要装13了 
老板根本不懂技术   只看有没有完成任务

-

-------

metric里面放字典也可以 可以设置变量

//结合VFL不支持乘除法  所以需要结合 NSLayoutConstraint

 

-----------------------------------------------------------

这里不用看

NSLayoutConstraint 代码实现添加约束

 ------------

autoLayout补充

如果控件有默认的高度  如textField控件里有文字  我们只需要设置autolayout的x/y,autolayout自动计算出宽高 不用指定宽高了

----

autoLayout 动画

//
//  ViewController.m

#import "ViewController.h"

@interface ViewController ()
/**
 *  距离父控件左边的约束
 */
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *leftCos;
/**
 *  距离父控件顶部的约束
 */
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topCos;
@end

@implementation ViewController

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // 1.修改约束的值
    self.leftCos.constant += 100;
    
    self.topCos.constant += 100;
    
    // 2.执行动画
    [UIView animateWithDuration:5 animations:^{
        // 让view上的约束执行动画
        [self.view layoutIfNeeded];
    }];
}

@end

 

posted @ 2016-03-25 10:30  海龙王来了  阅读(157)  评论(0)    收藏  举报
友情链接:废钢破碎机  带式压滤机