当前位置: 首页 > news >正文

setContentHuggingPriority和setContentCompressionResistancePriority的使用

需求:

两个label并排显示,文字内容由服务器返回,label宽度以文字内容自适应,label之间间距大于等于10.

  需要考虑以下情况:

  • 当两个label的宽度和 < 屏幕宽度时,各自设置约束,无需处理,都可以完全展示。
  • 当两个label宽度和 > 屏幕宽度时,让左label压缩,优先让右label文字完全显示。

为了实现需求,我们可以使用下面2个api

这2个api是UIView的方法,在使用约束布局时生效。//设置控件的拉伸优先级
//控件的拉伸优先级数值默认是250,数值越大,越不易被拉伸
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis;//设置控件的抗压缩优先级
//控件的抗压缩优先级数值默认是750,数值越大,越不易被压缩。
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis;

setContentCompressionResistancePriority(抗压缩),

  • 这个值越低,会在宽度不够的情况下,优先被压缩。
  • 这个值越大,会在宽度不够的情况下,优先完全展示。

常见的视图默认给的值是UILayoutPriorityDefaultHigh = 750。

举例:一个labelA的抗压缩系数为500,labelB为750,那么空间不足的情况下,LabelA会打点显示。

上面的例子中,我们设置左边的label抗压缩为500(小于右侧label即可),即可达到效果。

先看默认情况,设置为750,xib会有报错,并且run效果和xib效果不一致:

 改成749(只要小于右侧的抗压缩系数即可) ,左侧label优先被挤压,run效果和xib效果一致,就不贴图了:

在试试设置为751,左侧label扬眉吐气,完全展示,右侧label被挤压:


在看看另一个API的作用 

setContentHuggingPriority(拉伸),

  • 这个值越小,就会在宽度多余的情况下,被拉伸。
  • 这个值越大,就会在宽度多余的情况下,优先保持原尺寸。

默认情况下: HuggingPriority == 250

举例:一个labelA的拉伸系数为250,labelB为500,那么空间充足的情况下,LabelA会显示更多。

看代码前,先把label之间间距大于等于10 改为 等于10,这样才会出现父视图宽度 大于 子视图宽度和的情况。

先看默认情况,都设置为250,xib会有报错,并且run效果和xib效果不一致:

在看把左侧label拉伸系数改为100, 左侧填满的父视图剩余空间

左侧label的拉伸系数改为500,左侧内容宽度不变,右侧内容填满父视图空间

 总结一下:

在宽度不够的情况下:

setContentCompressionResistancePriority(抗压缩)生效

  • 这个值越小,优先被压缩。
  • 这个值越大,优先完全展示。

在宽度足够的情况下:

setContentHuggingPriority(拉伸)生效

  • 这个值越小,优先被拉伸。
  • 这个值越大,优先保持原尺寸,拉伸其他视图。

值越小,越会被压缩,拉伸。

值越大,越会保持原有尺寸。

相关文章:

setContentHuggingPriority和setContentCompressionResistancePriority的使用

需求&#xff1a; 两个label并排显示&#xff0c;文字内容由服务器返回&#xff0c;label宽度以文字内容自适应&#xff0c;label之间间距大于等于10. 需要考虑以下情况&#xff1a; 当两个label的宽度和 < 屏幕宽度时&#xff0c;各自设置约束&#xff0c;无需处理&#…...

java springboot yml文件配置 多环境yml

如果是properties改用yml&#xff0c;直接改后缀&#xff0c;原文件中的配置语法改用yml的语法即可&#xff0c;系统会自动扫描application.properties和application.yml文件&#xff08;注意&#xff1a;改了之后需要maven 命令 clean一下&#xff0c;清个缓存&#xff09;。 …...

DMBOK知识梳理for CDGA/CDGP——第一章数据管理(附常考知识点)

第一章 数据管理 第一章在 CDGA|CDGP考试中分值占比均不是很高&#xff0c;主要侧重点是考概念性的知识&#xff0c;理解数据管理的目标原则、还有与其他概念的区别点&#xff0c;同时掌握几个关键核心的图&#xff08;车轮图、六边形图、语境关系图&#xff09;。总体来说难度…...

065:cesium设置带有箭头的线材质(material-9)

第065个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置带有箭头的线材质,请参考源代码,了解PolylineArrowMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共82行)相关API参考…...

Java常用API

1 常用API API(:Application Programming Interface ):应用程序编程接口1.1 Math类 Math中没有构造方法,类的成员都是静态的(static修饰),通过类名就可以直接调用常用方法方法名说明public static int abs(int a)获取参数a的绝对值public static double ceil(double a) …...

【C++ 学习 ⑥】- C++ 动态内存管理详解

目录 一、new 表达式和 delete 表达式的工作机理 二、operator new 和 operator delete 函数 2.1 - 标准库定义 2.2 - 重载 三、定位 new 表达式 四、常见面试题 4.1 - malloc/free 和 new/delete 的区别 4.2 - 内存泄漏 在 C 中&#xff0c;new 和 delete 既是关键字&…...

【5.21】六、自动化测试—常见技术

目录 6.2 自动化测试常见技术 1. 录制与回放测试 2. 脚本测试 3. 数据驱动测试 6.2 自动化测试常见技术 自动化测试技术有很多种&#xff0c;这里介绍3种常见的技术&#xff1a; 1. 录制与回放测试 录制是指使用自动化测试工具对桌面应用程序或者是Web页面的某一项功能进…...

JavaScript中的事件循环机制,包括事件循环的原理、宏任务和微任务、事件队列和调用栈、以及如何优化事件循环

JavaScript中的事件循环机制是JavaScript运行引擎的核心之一&#xff0c;它决定了代码的执行方式和效率。本文将从几个方面介绍JavaScript中的事件循环机制&#xff0c;包括事件循环的原理、宏任务和微任务、事件队列和调用栈、以及如何优化事件循环。 一、事件循环的原理 事…...

【华为OD机试c++】解压报文【2023 B卷 |200分】

题目描述 为了提升数据传输的效率&#xff0c;会对传输的报文进行压缩处理。 输入一个压缩后的报文&#xff0c;请返回它解压后的原始报文。 压缩规则&#xff1a;n[str]&#xff0c;表示方括号内部的 str 正好重复 n 次。 注意 n 为正整数&#xff08;0 < n < 100&a…...

JS中Array的forEach、map、filter方法区别?

一&#xff1a;基本用法 1、forEach()函数用于对数组中的每个元素执行给定的函数&#xff0c;而它不返回任何值&#xff0c;它只是对每个元素调用传入的函数。这个函数可以接受三个参数&#xff1a;当前元素的值、当前元素的索引和整个数组。 const arr [1, 2, 3]; arr.forE…...

Java的Arrays类的sort()方法(41)

目录 sort&#xff08;&#xff09;方法 1.sort&#xff08;&#xff09;方法的格式 2.使用sort&#xff08;&#xff09;方法时要导入的类 3.作用 4.作用的对象 5.注意 6.代码及结果 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;结果 sort&#xff08;&…...

Redis安装及其配置文件修改

一、redis 安装 点击即可下载 https://download.redis.io/releases/ 将下载后的包通过xftp上传到服务器 解压&#xff0c;我这边是解压到/usr/local目录下 -- 创建路径 mkdir /usr/local/redis -- 解压 tar -zxvf redis-4.0.0.tar.gz -C /usr/local/redis 为防止编译失败&am…...

VSOMEIP3抓包数据

环境 $ cat /etc/os-release NAME"Ubuntu" VERSION"20.04.6 LTS (Focal Fossa)" IDubuntu ID_LIKEdebian PRETTY_NAME"Ubuntu 20.04.6 LTS" VERSION_ID"20.04" HOME_URL"https://www.ubuntu.com/" SUPPORT_URL"https:/…...

基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程]

基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程] 0. 前言1. 资源信息获取函数——monitor.py2. UI界面——listen.py3. main.py4. 运行效果5. 编译 exe 程序6. 其他PyQt文章 0. 前言 利用 PyQt5 开发一个 windows 的资源监视助手&#xff0c;在使用虚…...

Linus Torvalds发布了第一个Linux内核6.4候选版本

导读自Linux内核6.3发布和下一个内核系列Linux 6.4的合并窗口开放以来&#xff0c;已经过去了一段时间&#xff0c;近日&#xff0c;Linus Torvalds发布了第一个RC&#xff08;候选发布版&#xff09;的里程碑&#xff0c;供公众测试。 为期两周的Linux内核6.4合并窗口现已关闭…...

由浅入深Dubbo核心源码剖析环境介绍

目录 1 框架介绍1.1 概述1.2 运行架构1.3 整体设计 2 环境搭建2.1 源码拉取2.2 源码结构2.3 环境导入2.4 测试2.5 管理控制台 1 框架介绍 1.1 概述 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架&#xff0c;使得应用可通过高性能的 RPC 实现服务的输出和输入功能&#…...

Java 远程连接 SQLite 数据库

Java 可以使用 JDBC API 来连接 SQLite 数据库。但是&#xff0c;SQLite 不支持远程连接&#xff0c;因为它是一种文件数据库&#xff0c;需要直接访问数据库文件。 如果您需要从远程位置访问 SQLite 数据库&#xff0c;可以将 SQLite 数据库文件放在共享文件夹中&#xff0c;…...

网安面试题大全(附答案)

本文面试题汇总&#xff1a; 防范常见的 Web 攻击 重要协议分布层 arp协议的工作原理 rip协议是什么&#xff1f;rip的工作原理 什么是RARP&#xff1f;工作原理 OSPF协议&#xff1f;OSPF的工作原理 TCP与UDP区别总结 什么是三次握手四次挥手&#xff1f; tcp为什么要三次握手…...

windows 系统扩容C盘注意事项

windows系统大家都不陌生&#xff0c;是大家用的最多的操作系统。在实际的使用中&#xff0c;遇到需要扩容C盘的情况不是很多&#xff0c;但是如果遇到了&#xff0c;有以下几个事项需要大家注意&#xff1a; 剩余空间是否充足 不论当前服务器是物理服务器还是虚拟机&#xff…...

接入支付宝沙箱环境

1、这里有几个重要数据要拿到&#xff0c;一个是支付宝的公钥和私钥&#xff0c;一个是支付的网关&#xff0c;和支付的APPID。这几个数据是要写到代码中的 官方手册&#xff1a;文档地址 1.1 配置沙箱应用环境 https://openhome.alipay.com/develop/sandbox/app 1.2 配置接口…...

独立开发者如何利用Taotoken的Token Plan套餐有效控制月度预算

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何利用Taotoken的Token Plan套餐有效控制月度预算 作为一名独立开发者&#xff0c;项目预算通常有限&#xff0c;而AI…...

保姆级教程:在Windows电脑上免梯子安装GPT4All最新版(附模型下载避坑指南)

Windows系统本地部署GPT4All全流程指南&#xff1a;从零基础到高效运行最近半年&#xff0c;开源大语言模型生态中最令人兴奋的变化之一&#xff0c;就是像GPT4All这样的工具让普通开发者也能在消费级硬件上运行强大的AI模型。作为一名长期关注AI本地化部署的技术顾问&#xff…...

解锁音乐自由:3分钟让QQ音乐加密音频随处播放的终极方案

解锁音乐自由&#xff1a;3分钟让QQ音乐加密音频随处播放的终极方案 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经在QQ音乐下载了一首心爱的歌曲&#xff0c;却…...

机器学习势函数与反向蒙特卡洛在GeO2玻璃中程有序结构建模中的对比研究

1. 项目概述与核心问题 在材料模拟领域&#xff0c;我们常常面临一个经典困境&#xff1a;如何从有限的实验数据中&#xff0c;构建出既符合物理规律又贴近真实情况的三维原子结构模型&#xff1f;这个问题在非晶态材料&#xff0c;尤其是像二氧化锗&#xff08;GeO2&#xff0…...

NLP文本预处理全流程实战:从数据清洗到向量化的工程实践指南

1. 项目概述&#xff1a;从文本到智能的桥梁在人工智能的众多分支中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是最具挑战性也最引人入胜的领域之一。它的核心目标直白而宏大&#xff1a;让机器能像人一样理解、运用和生成语言。这听起来像是科幻小说的情节&…...

5分钟终极指南:如何用KMS_VL_ALL_AIO一键搞定Windows和Office激活难题

5分钟终极指南&#xff1a;如何用KMS_VL_ALL_AIO一键搞定Windows和Office激活难题 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows激活烦恼吗&#xff1f;每次重装系统后都要到处寻…...

AI专著写作秘籍大公开!实测4款工具,一键生成20万字专著超高效!

学术专著写作难题与AI工具解决方案 对于许多从事学术研究的人来说&#xff0c;撰写学术专著面临的最大挑战&#xff0c;可能就是“有限的时间”与“不断增长的需求”的矛盾。写一本专著通常需要3到5年&#xff0c;甚至更长的周期&#xff0c;而研究者们在日常生活中还需要承担…...

2026年腾讯云OpenClaw/Hermes Agent配置Token Plan部署保姆级

2026年腾讯云OpenClaw/Hermes Agent配置Token Plan部署保姆级。OpenClaw是开源的个人AI助手&#xff0c;Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&am…...

Thorium浏览器:基于Chromium的终极性能优化与隐私保护深度解析

Thorium浏览器&#xff1a;基于Chromium的终极性能优化与隐私保护深度解析 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the to…...

DLSS Swapper终极指南:免费开源的DLSS文件智能管理工具

DLSS Swapper终极指南&#xff1a;免费开源的DLSS文件智能管理工具 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾经遇到过这样的困扰&#xff1a;你心爱的游戏明明支持DLSS技术&#xff0c;但游戏自带的DLSS…...