前期要实现 一个自适应的label 的时候,就知到xib 约束是有优先级的,一直为深入研究;

乘写这个 博客的机会 ,试验下xib 约束的等级 ……

抱歉要查资料,在重新实践,先把主要浏览的网页 连接公布下

http://www.jianshu.com/p/f83fa37fdd46http://www.jianshu.com/p/f83fa37fdd46

现在开始行动……

首先截个图好了:

在vc 上直接 xib label(为什么用label?->因为label 容易直接容纳文字~文字是不是省略了,更容易被观察到)

       

Content Hugging Priority

--"内容的抗拉伸的优先级",水平、竖直默认值都是 251,

Content Compression Resistance Priority

-- "内容抗压缩的优先级",水平、竖直默认值都是 750

那么,试验开始:

首先,把一大串的文字写在label 上,呈现的结果是:

                  

总结:抗压缩能力 :

当约束优先级 < 默认值 时,展示内容 可以向约束小的那个方向扩展,显示更多的内容;

当 约束优先级 >= 默认值 时,就没有这个 特性了

其次,label 展示 很少的内容,但是把label 的视图设置 很大,呈现的结果:

               

总结: 抗拉伸能力:

当约束等级 < 默认值 时,展示的内容 变小,显示更合理的范围

当约束等级 >= 默认值 时,没有这个特性了

好了,约束的优先级,粗略的搞懂了 这几个问题,现在就可以做几个Demo了,曾经的好多问题也能得到更好的解决了

1,解决的问题:文字很多,xib label 做自适应显示试图,也就是个自适应的label

2,解决问题,这个显示内容在有这个字段时显示,没有的时候 不显示

贴代码喽……

import UIKit

class ViewController: UIViewController {
/*
做文字自适应的label 和 根据是否含有内容 出现、消失的label
*/
@IBOutlet weak var testHuggingPriorityLabel: UILabel! @IBOutlet weak var testCompressionResistancePriority: UILabel! @IBAction func didTestButtonClick(_ sender: UIButton) { sender.isSelected = !sender.isSelected if sender.isSelected { self.testHuggingPriorityLabel.text = ""
self.testCompressionResistancePriority.text = "你说你不好的时候,我疼,疼的不知道该怎么安慰你,\n 你说你醉的时候,我疼,疼的不能自制,思绪混乱。\n 我的语言过于苍白,心却是因为你的每一句话而疼。\n 太多不能,不如愿,想离开,离开这个让我疼痛的你。\n 转而,移情别恋,却太难,只顾心疼,我忘记了离开,\n一次一次,已经习惯,习惯有你,习惯心疼你的一切。" }else{ self.testHuggingPriorityLabel.text = "测试抗压缩能力,敢测试,就消失给你看";
self.testCompressionResistancePriority.text = "测试抗拉伸能力,敢测试,就变得超级大"
}
} /**
vc 固定的方法
*/
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}

xib 添加的约束:

        

swift 第七课 xib 约束的优先级的更多相关文章

  1. XIB约束布局问题(通过优先级改变界面布局)

    需要注意的是,只能修改可选约束的优先级,也就是说: 不允许将优先级由小于1000的值改为1000 不允许将优先级由1000修改为小于1000的值 例如,如果将优先级由250修改为1000,则会抛出异常 ...

  2. Kali Linux Web 渗透测试视频教程— 第七课 OpenVas

    Kali Linux Web 渗透测试视频教程— 第七课 OpenVas 文/玄魂 视频教程地址:http://edu.51cto.com/course/course_id-1887.html 目录 ...

  3. NeHe OpenGL教程 第七课:光照和键盘

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. 【C语言探索之旅】 第二部分第七课:文件读写

    内容简介 1.课程大纲 2.第二部分第七课: 文件读写 3.第二部分第八课预告: 动态分配 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏 ...

  5. 【C语言探索之旅】 第一部分第七课:循环语句

    内容简介 1.课程大纲 2.第一部分第七课: 循环语句 3.第一部分第八课预告: 第一个C语言小游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编 ...

  6. 【Cocos游戏实战】功夫小子第七课之游戏主功能场景逻辑功能和暂停功能场景的分析和实现

    CSDN的markdown编辑器是吃屎了么! !.什么玩意.!写了一半写不了东西还全没了,搞个毛线! 本节课的视频教程地址是:第七课在此 假设本教程有帮助到您,希望您能点击进去观看一下,并且如今注冊成 ...

  7. Python学习第七课

    Python学习第七课 'Alex' "Alex"print('hello'*5) #重复输出字符串 print('hellowold'[2:]) #类似于切片操作:会取出 llo ...

  8. [译]Quartz.NET 框架 教程(中文版)2.2.x 之第七课 触发监听器和作业任务监听器

    第七课:触发监听器和作业任务监听器 监听器是在调度器中基于事件机制执行操作的对象.你大概可以猜到,触发监听器接收响应跟触发器有关的事件,作业任务监听器接收响应跟作业任务有关的事件. 跟触发器有关的事件 ...

  9. 红帽学习笔记[RHCSA] 第七课[网络配置相关]

    第七课[网络配置相关] 在Vmware中添加网卡 编辑 -> 编辑虚拟网络 -> 添加网络->随便选择一个如VMnet2-> 选择仅主机模式 -> 勾掉使用本地DHCP服 ...

随机推荐

  1. P3183 [HAOI2016]食物链[拓扑/记忆化搜索]

    题目来源:洛谷 题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形如a1 b1a2 b2a ...

  2. 快速排序Quick_Sort

    快排——排序中的明星算法,也几乎是必须掌握的算法,这次我们来领略以下快排为何魅力如此之大. 快排主要有两种思路,分别是挖坑法和交换法,这里我们以挖坑法为例来进行介绍,交换法可以参考这篇博文.值得一提的 ...

  3. hbase实践之Rowkey设计之道

    笔者从一开始接触hbase就在思考rowkey设计,希望rowkey设计得好,能够支持查询的需求.使用hbase一段时间后,再去总结一些hbase的设计方法,无外乎以下几种: reverse salt ...

  4. Codeforces Round #585 (Div. 2) D. Ticket Game

    链接: https://codeforces.com/contest/1215/problem/D 题意: Monocarp and Bicarp live in Berland, where eve ...

  5. 1、概述&应用场景

    1.概述&应用场景 Java反射机制是在运行状态中,对于任意一个类(Class)文件,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信 ...

  6. SIGAI深度学习第一集 机器学习与数学基础知识

    SIGAI深度学习课程: 本课程全面.系统.深入的讲解深度学习技术.包括深度学习算法的起源与发展历史,自动编码器,受限玻尔兹曼机,卷积神经网络,循环神经网络,生成对抗网络,深度强化学习,以及各种算法的 ...

  7. Codeforces Round #590 (Div. 3)【D题:26棵树状数组维护字符出现次数】

    A题 题意:给你 n 个数 , 你需要改变这些数使得这 n 个数的值相等 , 并且要求改变后所有数的和需大于等于原来的所有数字的和 , 然后输出满足题意且改变后最小的数值. AC代码: #includ ...

  8. focusout([data],fn) 当元素失去焦点时触发 focusout 事件。

    focusout([data],fn) 概述 当元素失去焦点时触发 focusout 事件. focusout事件跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况.大理石平台怎么样 参 ...

  9. [Hdoj] Fast Matrix Calculation

    题面:http://acm.hdu.edu.cn/showproblem.php?pid=4965 题解:https://www.zybuluo.com/wsndy-xx/note/1153981

  10. 常用SQL之日期格式化和查询重复数据

    本文列举一些工作中常用的SQL,以提升工作效率. 1 日期格式化 使用 DATE_FORMAT(get_date, '%Y-%m-%d') 函数进行格式化.其中:get_date 是需要被格式化的字段 ...