美文网首页
HuggingPriority和CompressionResis

HuggingPriority和CompressionResis

作者: 艺术农 | 来源:发表于2018-08-21 17:08 被阅读18次

有时我们在给UILabel或者UITextField这种带IntrinsicHeight和IntrinsicWidth类型的视图做约束时,约束的结果会出乎我们的意料。
例如下面这样:

    UILabel *label1 = [[UILabel alloc] init];
    label1.text = @"我是label1";
    label1.textColor = [UIColor blackColor];
    label1.backgroundColor = [UIColor purpleColor];
    [self.view addSubview:label1];

    UILabel *label2 = [[UILabel alloc] init];
    label2.text = @"我是label2";
    label2.backgroundColor = [UIColor yellowColor];
    label2.textColor = [UIColor blackColor];
    [self.view addSubview:label2];

    [label1 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(self.view);
        make.top.equalTo(self.view);
    }];

    [label2 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.right.equalTo(self.view);
        make.top.equalTo(self.view);
        make.left.equalTo(label1.mas_right);
    }];
561534842242_.pic.jpg

因为UILabel默认的hugging优先级是250,当2个UILabel或者UITextField视图需要拉伸或者压缩时,系统不知道该拉伸谁或者压缩谁,这时需要我们手动的设置优先级。
上面的情况我们可以设置下label1的HuggingPriority更高,那么系统会优先压缩label1。

    [label1 setContentHuggingPriority:UILayoutPriorityDefaultHigh
                              forAxis:UILayoutConstraintAxisHorizontal];

同理,设置CompressionResistancePriority级别更低也是可以的。设置完后的效果是下面这样的。

551534842145_.pic.jpg

相关文章

  • HuggingPriority和CompressionResis

    有时我们在给UILabel或者UITextField这种带IntrinsicHeight和IntrinsicWid...

  • HuggingPriority和CompressionResis

    我取名 setContentHuggingPriority为 “抗拉伸”(这个名字我自己认为比较准确);setCo...

  • HuggingPriority和CompressionResis

    https://www.jianshu.com/p/5cf559435eb9

  • iOS - HuggingPriority和Compressio

    我取名 setContentHuggingPriority为 “抗拉伸”(这个名字我自己认为比较准确);setCo...

  • SnapKit-进阶篇

      这一篇我们分析下使用 SnapKit 在布局时候的两个重要的概念 HuggingPriority-抗拉伸 和 ...

  • -和 和 -

    产品介绍:和和是一款会员制共享平台;所有 经营者可在APP内注册和和商家成为会员供 应商(实体店、网店、微商、平台...

  • &和&&,|和||

    原文:https://blog.csdn.net/chinabestchina/article/details/7...

  • 和可和,非常和

    我年纪很小的时候,父亲有一本笔记本,上面只写了一句话:万物并育而不相害,道并行而不相悖。我当时很喜欢这句话,所以期...

  • kotlin中的空? 和 ?. 和 ?: 和 as? 和 !!

    ? 可空类型 kotlin和Java的类型系统之间的一个很重要的区别就是,Kotlin对可空类型的显示支持 也就是...

  • self. 和 _ 和 = 和 set

    声明了一个属性 @property (a,b) p1; 只有用self.调用时修饰关键词才起作用, 用_调用...

网友评论

      本文标题:HuggingPriority和CompressionResis

      本文链接:https://www.haomeiwen.com/subject/xzujiftx.html