博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于UIButton的UIEdgeInsets属性
阅读量:5906 次
发布时间:2019-06-19

本文共 1713 字,大约阅读时间需要 5 分钟。

UIButton共有三个相关属性: 1.contentEdgeInsets 2.titleEdgeInsets 3.imageEdgeInsets 本文将一一介绍.

#UIEdgeInsets 先来看看这个UIEdgeInsets:

typedef struct UIEdgeInsets {    CGFloat top, left, bottom, right;  // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'} UIEdgeInsets;复制代码

原来是结构体,它的四个参数:top, left, bottom, right, 分别表示距离上边界,左边界,下边界,右边界的位移,默认值均为0。

#contentEdgeInsets 我们都知道,UIButton按钮可以只设置一个UILabel或者一个UIImageView,还可以同时具有UILabel和UIImageView;如果给按钮设置contentEdgeInsets属性,就是按钮的内容整体(包含UILabel和UIImageView)进行偏移。 按钮内容整体向右下分别移动10像素:

Button.contentEdgeInsets = UIEdgeInsetsMake(10, 10, -10, -10);复制代码

#titleEdgeInsets & imageEdgeInsets 这两个属性的效果是相辅相成的。如果给一个按钮同事设置了title和image,他们默认的状态是图片在左,标题在右,而且image和title之间没有空隙;那就这就引出一个问题,title和image的UIEdgeInsets属性分别的相对于谁而言的?

真相只有一个: image的UIEdgeInsets属性的top,left,bottom都是相对于按钮的,right是相对于title; title的UIEdgeInsets属性的top,bottom,right都是相对于按钮的,left是相对于image;

知道真相的你不知道有没有眼泪流下来,怪不得之前怎么设置都不是想要的结果,原来相对于谁的位移压根没有搞清楚。现在既然搞清楚了,我们来试一下:

title在左,image在右:

//拿到title和image的大小:CGSize titleSize = self.pureButton.titleLabel.bounds.size;CGSize imageSize = self.pureButton.imageView.bounds.size;//分别设置偏移量:记住偏移量是位移self.pureButton.titleEdgeInsets = UIEdgeInsetsMake(0, -imageSize.width, 0, imageSize.width);self.pureButton.imageEdgeInsets = UIEdgeInsetsMake(0, titleSize.width, 0, -titleSize.width);复制代码

image在上,title在下:

//图片 向右移动的距离是标题宽度的一半,向上移动的距离是图片高度的一半//标题 向左移动的距离是图片宽度的一半,向下移动的距离是标题高度的一半self.pureButton.imageEdgeInsets = UIEdgeInsetsMake(-imageSize.height/2, titleSize.width/2, imageSize.height/2, -titleSize.width/2);self.pureButton.titleEdgeInsets = UIEdgeInsetsMake(titleSize.height/2, -imageSize.width/2, -titleSize.height/2, imageSize.width/2);复制代码

#最后

这篇没有Demo...( 太简单了)

转载地址:http://brcpx.baihongyu.com/

你可能感兴趣的文章
arailsdemo x
查看>>
Lucene的高级使用之高亮显示
查看>>
一些关于企业文化的要点(翻译)
查看>>
Wireshark 【OSI二层】抓包过滤规则和显示过滤规则实例
查看>>
Rails 命令及用法
查看>>
CentOS 6.5 部署Kafka集群
查看>>
基础的 Linux 命令使用方法实例
查看>>
linux 是否支持中文
查看>>
linux菜鸟基础学习 (三) 文件权限
查看>>
50HZ转60HZ变频电源规格
查看>>
2019第十二届亚洲(北京)国际物联网展览会
查看>>
金融财务数据分析报告PPT模板
查看>>
图片转换文字,这种方法最简单,最便捷!
查看>>
yii2 如何在页面底部加载css和js
查看>>
mysql 开启慢查询及其用mysqldumpslow做日志分析
查看>>
CGI
查看>>
python tornado获取当前用户
查看>>
每个Java工程师,都应该掌握数据库事务(概念及原理)
查看>>
STP配置实例
查看>>
心理服务OA系统——让心理服务机构管理工作一站到位【心悦灵】
查看>>