基于 xib 开发自适应高度 view

虽然 xib 和 storyboard 不那么受待见,但我依旧喜欢。

自定义 view

说明:

title Label 约束 -> top:0 bottom:0 left:15

indicator Label 约束 -> top:5 bottom:5 right:34

title Label 和 indicator Label 相对约束 -> 水平间距 >= 5

indicator Label 设置 -> numberOfLines = 0

效果

笔记

使用自适应,也就是不确定约束,多个自适应控件之间不应该出现确定的约束(明确规定 rect 的约束)。

比如: 上面 title Label 和 indicator Label 都使用了自适应(title Label 没有确定宽度或者右边距,indicator Label 没有确定宽度或者左边距),如果这时设置这两个 label 的水平间距为一个确定的值(两个 label 在 xib 上的当前间距除外),约束就会自相矛盾。

核心代码

// 初始化

- (CHDisclosureIndicatorView *) diView {

if (_diView == nil) {

_diView = [[[UINib nibWithNibName:@"CHDisclosureIndicatorView" bundle:nil] instantiateWithOwner:nil options:nil] lastObject];

_diView.layer.cornerRadius = 5;

_diView.delegate = self;

_diView.title = @"默默";

_diView.indicator = nil;

}

return _diView;

}

// 设置约束

[self.diView mas_makeConstraints:^(MASConstraintMaker *make) {

make.top.equalTo(self.topView.mas_bottom).offset(10);

make.left.mas_equalTo(15);

make.right.mas_equalTo(-15);

make.height.mas_greaterThanOrEqualTo(50); // important

}];

完整 demo

ios xib 初始化高度_基于 xib 开发自适应高度 view相关推荐

  1. 查看gpio状态_基于Arduino开发,借助blinker平台,让NodeMCU实现8路继电器APP端状态监视和控制...

    基于Arduino开发,借助blinker物联网平台,让NodeMCU实现8路继电器APP端状态监视和控制 先上开发板功能图: 本文利用了NodeMCU上的D0-D3,D5-D9,总共 8个 GPIO ...

  2. request[limit]取不到前台的值_基于uFUN开发板的心率计(二)动态阈值算法获取心率值...

    前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...

  3. arduino编码器计数_基于Arduino开发环境的光电编码器检测仪设计方案 - 全文

    0 引言 Arduino是一款基于单片机系统的电子产品开发平台,它的软硬件系统都具有高度的模块化,而且软件系统是完全开源的.其硬件系统也是高度模块化的,在核心控制板的外围有开关量输入/输出模块.各种模 ...

  4. vue.js反编译_基于electron-vue开发的微信小程序反编译客户端

    开源一个小程序反编译客户端 咨询小程序反编译的同学比较多,虽然有开源库但是还是有同学不清楚如何去操作,所以索性做了一个客户端方便进行小程序的反编译 # 技术选型 网上已经有大佬实现了C#版的反编译工具 ...

  5. java电信计费项目论文_基于JAVA开发的电信IP计费系统设计毕业论文

    基于JAVA开发的电信IP计费系统设计毕业论文 本科毕业设计(论文)基于 JAVA 开发的电信 IP 计费系统毕业设计(论文)任务书学院:信息科学与工程学院 系级教学单位:电子与通信工程学号学生姓名专 ...

  6. .net vue漂亮登录界面_基于 electron-vue 开发的音乐播放器「实践」

    作者:XiaoTuGou 转发链接:https://github.com/SmallRuralDog 前言 基于 electron-vue 开发的音乐播放器,界面模仿QQ音乐. 技术栈electron ...

  7. java 快递项目_基于SpringBoot开发的Java快递代拿系统

    该项目基于 [基于SSM开发的Java快递代拿系统] 项目全面升级,使用当前最为流行的 SpringBoot 框架,相关技术栈全面更新!是您深入学习 SpringBoot 开发的最佳实践! 相关技术栈 ...

  8. java医院挂号代码_基于SSM开发的Java医院预约挂号系统 源码下载

    这是一个基于SSM开发的Java医院预约挂号系统,源码中附带主工程以及数据库文件. 目前已知Bug:因为时间预约信息是假数据,控制预约日历显示的代码在data/index.js,因为js写的有点bug ...

  9. labview虚拟心电监测系统_基于LabVIEW开发的心电实时信号采集系统

    基于 LabVIEW 开发的心电实时信号采集系统 史锡腾 ; 江迅 ; 龚贤伟 [期刊名称] <医疗卫生装备> [年 ( 卷 ), 期] 2007(028)006 [摘要] 介绍了以 La ...

最新文章

  1. Windows下使用Notepad++修改二进制文件,exe可执行文件
  2. 操作系统服务:logging日志记录模块
  3. DeepLearning.AI第一部分第三周、 浅层神经网络(Shallow neural networks)
  4. 表面上在帮女朋友拍照,其实镜头瞄准的是......
  5. mysql字段唯一确定_验证表里某不确定的字段的值是否唯一的方法?
  6. 理解OAuth 2.0(转)
  7. python 扫描仪_玩《Minecraft我的世界》学python编程,可领|取电子学习版本
  8. C++ 之父即将开始直播,请就位!
  9. js书写原生ajax,JS 原生ajax写法
  10. Pspice轨迹命令
  11. pdo mysql 函数_PDO函数属性详解
  12. php ean13,php生成EAN_13标准条形码实例
  13. 微信游戏奇迹暖暖选取服务器失败,奇迹暖暖微信登录授权失败
  14. 经典工作自我鉴定范文/实习自我鉴定表
  15. 二手新能源车数据爬虫(人人车,第一手车,二手车之家)
  16. 【已解决】IDEA创建Maven多模块项目子模块引用不到父模块的pom
  17. 解析Sers微服务-NetCore之HelloWorld
  18. 看历史涨知识!高速公路知多少?
  19. 基于vue的tiptap编辑器插件(二)
  20. 关于引起stop:c000021a unknown hard error部分问题及解决。

热门文章

  1. 夺命雷公狗---无限极分类NO2
  2. 使用C4D制作iPhone模型:第2部分
  3. 复制粘贴往事:竟是缘起苹果电脑
  4. 【附源码】计算机毕业设计Python安卓基于Android的多功能备忘录csj99(源码+程序+LW+调试部署)
  5. 私有IP地址的意义及其范围
  6. docker镜像备份
  7. UXD(UED)用户交互课程笔记
  8. 腹黑指数php,3分钟测试,暴露你内心的腹黑指数!
  9. QtWidgets.QPushButton()设置背景图片
  10. 写一个爬取东方财富网股票融资融券的pthon代码