zoukankan      html  css  js  c++  java
  • 视图布局约束 VFL

    约束规则如下:
     
     
    使用规则


    |: 表示父视图


      -:表示距离


      V:  :表示垂直


      H:  :表示水平


    >= :表示视图间距、宽度和高度必须大于或等于某个值


        <= :表示视图间距、宽度和高度必须小宇或等于某个值


        == :表示视图间距、宽度或者高度必须等于某个值


    @  :>=、<=、==  限制   最大为  1000     优先级 1000最大 






    1.|-[view]-|:  视图处在父视图的左右边缘内


    2.|-[view]  :   视图处在父视图的左边缘


    3.|[view]   :   视图和父视图左边对齐


    4.-[view]-  :  设置视图的宽度高度


    5.|-30.0-[view]-30.0-|:  表示离父视图 左右间距  30


    6.[view(200.0)] : 表示视图宽度为 200.0


    7.|-[view(view1)]-[view1]-| :表示视图宽度一样,并且在父视图左右边缘内


    8. V:|-[view(50.0)] : 视图高度为  50


    9: V:|-(==padding)-[imageView]->=0-[button]-(==padding)-| : 表示离父视图的距离


    为Padding,这两个视图间距必须大于或等于0并且距离底部父视图为 padding。


    10:  [wideView(>=60@700)]  :视图的宽度为至少为60 不能超过  700 ,最大为1000


    11: 如果没有声明方向默认为  水平  V:
     
     

    - (NSArray *)constraints NS_AVAILABLE_IOS(6_0);
    对于有层次关系的两个view之间的约束关系,添加到层次较高的父级view上。


    对于两个不同层级view之间的约束关系,添加到他们最近的共同父级view上。




    对于两个同层级view之间的约束关系,添加到他们的父级view上。


     
    六、- (void)addConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0); //视图布局上添加一个约束


    七、- (void)addConstraints:(NSArray *)constraints NS_AVAILABLE_IOS(6_0); //视图布局上添加多个约束


    八、- (void)removeConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0); 移除视图布局上的一个约束


    九、- (void)removeConstraints:(NSArray *)constraints NS_AVAILABLE_IOS(6_0); 移除视图布局上的多个约束


    十、- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0); //调用新的视图布局自动触发,更新视图布局上的约束


    十一、- (void)updateConstraints NS_AVAILABLE_IOS(6_0); // 更新自定义视图布局约束


    十二、- (BOOL)needsUpdateConstraints NS_AVAILABLE_IOS(6_0); 判断视图布局是否需要更新约束


    13、- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0); 设置视图布局是否需要更新约束




    UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    UIButton *acceptButton = [UIButton buttonWithType:UIButtonTypeCustom];
    NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(cancelButton,acceptButton);
    NSArray *demoConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"[cancelButton(72)]-12-[acceptButton(50)]" options:0 metrics:nil views:viewsDictionary]; //取消按钮宽72point,accept按钮宽50point,它们之间间距12point
    NSLog(@"%@", demoConstraint);
    [oneViewDemo updateConstraintsIfNeeded];
    [oneViewDemo updateConstraints];
    [oneViewDemo needsUpdateConstraints];
    [oneViewDemo setNeedsUpdateConstraints];
    [oneViewDemo  addConstraints: demoConstraint];
    [oneViewDemo  addConstraint: [demoConstraint objectAtIndex:0]];
    [oneViewDemo removeConstraint:[demoConstraint objectAtIndex:1]];
    [oneViewDemo removeConstraints:demoConstraint];
  • 相关阅读:
    Linux 10字符串命令病毒的处理记录
    Spring的核心模块解析
    干货 | 教你如何监控 Java 线程池运行状态
    关于Spring事物的面试题
    Integer、new Integer() 和 int 比较的面试题
    性能监控工具-JDK命令行工具
    JVM调优总结 -Xms -Xmx -Xmn -Xss
    JVM系列三:JVM参数设置、分析
    JVM—内存溢出、OutOfMemoryError、StackOverflowError
    7种垃圾收集器
  • 原文地址:https://www.cnblogs.com/mumoozhu/p/4582805.html
Copyright © 2011-2022 走看看