设置三个按钮等宽分布
效果图:
思路:(self为自定义的View,里面有三个按钮和两个分隔线)
一、按钮约束:使三个按钮等宽分布
1、按钮一:上、左、下和self对齐,宽和“按钮二”对齐
2、按钮二:上、下和self对齐,宽和“按钮三”对齐,左和“按钮二”右对齐
3、按钮三:上、右、下和self对齐,左和“按钮二”右对齐
二、竖线约束:
1、分隔线一:CenterY和self对齐,CenterX和“按钮一”右对齐
2、分隔线二:CenterY和self对齐,CenterX和“按钮二”右对齐
1 private func setupUI(){ 2 // 添加三个按钮 3 let retweetButton = addChildButton(imageName: "timeline_icon_retweet",title: "转发") 4 let commentButton = addChildButton(imageName: "timeline_icon_comment",title: "评论") 5 let unlikeButton = addChildButton(imageName: "timeline_icon_unlike",title: "赞") 6 7 // 添加两个分隔线 8 let firstLineView = addChildLineView() 9 let secondLineView = addChildLineView() 10 11 // 设置三个按钮的约束 12 retweetButton.snp_makeConstraints { (make) in 13 make.top.leading.bottom.equalTo(self) 14 make.width.equalTo(commentButton) 15 } 16 commentButton.snp_makeConstraints { (make) in 17 make.top.bottom.equalTo(self) 18 make.leading.equalTo(retweetButton.snp_trailing) 19 make.width.equalTo(unlikeButton) 20 } 21 unlikeButton.snp_makeConstraints { (make) in 22 make.top.trailing.bottom.equalTo(self) 23 make.leading.equalTo(commentButton.snp_trailing) 24 } 25 26 // 设置两个分隔线约束 27 firstLineView.snp_makeConstraints { (make) in 28 make.centerX.equalTo(retweetButton.snp_trailing) 29 make.centerY.equalTo(self) 30 } 31 secondLineView.snp_makeConstraints { (make) in 32 make.centerX.equalTo(commentButton.snp_trailing) 33 make.centerY.equalTo(self) 34 } 35 } 36 37 // 创建button按钮 38 private func addChildButton(imageName:String,title:String) -> UIButton{ 39 let button = UIButton() 40 button.setImage(UIImage(named:imageName), for: .normal) 41 button.setTitle(title, for: .normal) 42 button.titleLabel?.font = UIFont.systemFont(ofSize: 14) 43 button.setTitleColor(UIColor.darkGray, for: .normal) 44 button.setBackgroundImage(UIImage(named:"timeline_card_bottom_background"), for: .normal) 45 button.adjustsImageWhenHighlighted = false 46 addSubview(button) 47 return button 48 } 49 50 // 创建竖线视图 51 private func addChildLineView() -> UIImageView{ 52 let imageView = UIImageView(image:UIImage(named:"timeline_card_bottom_line")) 53 addSubview(imageView) 54 return imageView 55 }
转载于:https://www.cnblogs.com/panda1024/p/6180910.html
设置三个按钮等宽分布相关推荐
- IOS约束三个按钮等宽等高,均分整个view,
IOS约束三个按钮等宽等高,均分整个view, 转发评论和赞这三个按钮如何平均等分. 第1步: 设置 转发按钮 距离 左0 上 1. 第2步: 设置 赞按钮 距离右边0, 第3步: 设置 中间按钮距离 ...
- 动态设置View的宽高、宽高比例(设置ViewPager的高度,宽高比例为2:1)
利用ViewPager显示banner的时候,一些人会直接写死ViewPager高度,比如在xml布局里面直接写成180dp. 这样的话,每个手机的宽度不同,viewpager里面内容的长宽比就不同, ...
- 动态设置 GridView Web 服务器控件列宽
ASP.NET 如何:动态设置 GridView Web 服务器控件列宽 默认情况下,会自动调整 GridView 控件中列的大小.列将呈现为不含宽度信息的 HTML 表单元格(td 元素):大多数浏 ...
- 计算机excel行高在哪里,如何在Excel2016中设置改行高和列宽?
相信大家会发现excel2016默认的行号和列宽有的时候会不符合自己的要求,那如何在Excel2016中设置改行高和列宽?下面感兴趣的小伙伴就和小编一起来学习一下具体的方法吧! Excel2016设置 ...
- CSS实现三列图片等宽等间距布局
每个图片块左浮动,宽30%,左外边距2.5%: 100%=(2.5%+30%)+(2.5%+30%)+(2.5%+30%)+2.5%<!DOCTYPE html> <html> ...
- 【Unity游戏开发】动画系统(三)按钮动画
文章目录 动画系统之按钮动画 1. 按钮Botton 2. 创建一个Button按钮 3. 按钮动画 3.1 改变颜色 3.2 改变图片 3.3 改变动画 结语 动画系统之按钮动画 动画系统是一个比较 ...
- 台式计算机蓝牙无服务,Windows10无法找到蓝牙设置三种解决方法
说到蓝牙,大家首先想到就是手机上的,现在蓝牙用于将各种设备连接到您的计算机. 它可能是你的键盘,鼠标,手机,耳机等等.一些用户反馈说在Windows10系统中无法找到蓝牙设置,怎么办呢?针对此疑问,接 ...
- 动态设置view或布局的宽高
代码中动态设置view或布局的宽高 标签: 图片/ 动态改变/ 宽高 有时我们需要在应用中动态改变图片或某一块布局的大小.这就不能用XML文件写成固定值,而需要在java代码中动态设置.效果如下: ...
- python气象处理第三弹-绘制气象站点分布
python气象处理第三弹-绘制气象站点分布 python气象处理第三弹-绘制气象站点分布 python气象处理第三弹-绘制气象站点分布 前言 一.下载并转换中国气象站点数据? 二.使用步骤 1.引入 ...
- html5 两栏等宽布局代码,分三栏栏宽相等 如何将合并的一段分为等宽三栏,栏宽为4.5厘米...
将正文的最后一段分成等宽的三栏,栏间加分隔线.将正文的最后一段分成等宽的三栏,栏间加分隔线. 方法步骤如下: 打开需要操作的WORD文档,选中正文最后一段,点击页面布局中的"更多分栏&quo ...
最新文章
- 字节跳动一面:i++ 是线程安全的吗?
- struct和typedef struct的区别(转)
- 关于js中function(e) e的理解
- ajax清请求过程,JS深入基础之Ajax的请求过程
- Spring Boot中配置嵌入式Servlet容器修改配置
- java 关于集合的笔试题_Java集合面试题(一)
- 模糊的边界:内存和存储以全新方式融合
- 【转】到底什么时候应该用MQ
- 关于类微博的timeline的设计思考
- 使用Secure Store Service连接数据库
- 分享PHP获取客户端IP的几种不同方式
- html中多个div分开排列,CSS+DIV设计实例:多个DIV排列时居中
- 擎标|CMMI 5认证对软件企业有什么好处?
- 秩和比算法matlab程序,Matlab学习系32. 秩和比综合评价法.docx
- JavaScript表单验证示例
- Excel表格撤销工作表保护
- postman接口测试七
- 深度可分离卷积组卷积
- OC load 和 initialize 方法
- 解压RAR时出现“不可预料的压缩文件末端”的解决方法