UIButton 内部介绍
**
设置内容距btn边框距离
**/
btn.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
/** 将label和imageView看成一个整体
比如将imageview放到label后面 则需要计算 imageview与label相对的位置 和距离另外一个边的距离
通俗的说 默认情况下的 imageview在左 titlelabel在右
imageEdgeInsets left对比位置未 按钮左边框 right 对比与他相邻的label
titlelabelEdgeInsets 与 image相同
下面代码为 左右交换image与label
**/
[btn setImageEdgeInsets:UIEdgeInsetsMake(0,btn.titleLabel.frame.size.width, 0,-btn.titleLabel.frame.size.width-btn.imageView.frame.size.width)];
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0,CGRectGetWidth(btn.imageView.frame))];
这个方法计算起来比较麻烦 不如直接自定义button 来 重写layoutSubviews方法 直接设置 image lable frame 来达到效果
注:[super layoutSubviews]
/**
reversesTitleShadowWhenHighlighted 设置标题高亮时 阴影是否突出显示
adjustsImageWhenHighlighted 默认是肯定的。如果是的话,图像被高亮显示时(按下)
adjustsImageWhenDisabled 默认是肯定的。如果是,图像被禁用时禁用
showsTouchWhenHighlighted 默认情况下是没有。如果是,显示一个简单的反馈(目前为辉光),而高亮显示
**/
btn.reversesTitleShadowWhenHighlighted = NO;
btn.showsTouchWhenHighlighted = YES;
//设置阴影颜色
[btn setTitleShadowColor:[UIColor redColor] forState:UIControlStateNormal];
[btn setTitleShadowColor:[UIColor greenColor] forState:UIControlStateHighlighted];
//attributedString标题设置
NSMutableDictionary * dic = [[NSMutableDictionary alloc]init];
[dic setObject:[UIColor redColor] forKey:NSBackgroundColorAttributeName];
NSAttributedString * aStr = [[NSAttributedString alloc]initWithString:@"33333" attributes:dic];
[btn setAttributedTitle:aStr forState:UIControlStateNormal];
/**
获取相应状态的属性值
- (nullable UIColor *)titleColorForState:(UIControlState)state
- (nullable UIColor *)titleShadowColorForState:(UIControlState)state
- (nullable UIImage *)imageForState:(UIControlState)state
- (nullable UIImage *)backgroundImageForState:(UIControlState)state
- (nullable NSAttributedString *)attributedTitleForState:(UIControlState)state
**/
/*
在子类化的时候你可以重载下面这些方法,这些方法返回CGRect结构,指明了按钮每一组成部分的边界。
注意:不要直接调用这些方法, 这些方法是你写给系统调用的。
- (CGRect)backgroundRectForBounds:(CGRect)bounds 制定背景边框
- (CGRect)contentRectForBounds:(CGRect)bounds 制定内容边界
- (CGRect)titleRectForContentRect:(CGRect)contentRect 文字标题边界
- (CGRect)imageRectForContentRect:(CGRect)contentRect 按钮图像边界
*/
UIButton 内部介绍的更多相关文章
- 你真的会用UIButton吗? UIButton详细介绍
本节知识点: 什么是UIButton UIButton的状态 UIButton的属性设置 UIButton基本使用步骤 UIButton的代码创建与常用属性设置 重写按钮的某个状态属性的 setter ...
- UIButton内部子控件自定义布局-“UIEdgeInsets”
UIButton UIButton做frame动画时,不响应点击 在一个View内部加入几个按钮,然后改变这个view的frame来做动画,但是按钮不响应点击事件. 问题代码 __block CGRe ...
- java虚拟机内部介绍
一.介绍 java 的内存管理和垃圾回收在某种程度是同一个问题来着.对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free代码,不容易出现 ...
- iOS UIButton详细介绍
昨天,做了项目中的一点,觉得细节还是很重要的.像一个普通的UIButton,给它调试字体格式,大小什么的,确实是蛮耗时间的. 今天打算详细的归纳归纳.. typedef NS_ENUM(NSInteg ...
- LoadRunner内部介绍以及常见问题
Tools Recording Options 接下来我们挨个看一下里面的东东以及区别 General(通常的) Script,不用修改,是脚本的语言,我们一般都是基于 C 语言的 Protocols ...
- ios自定义UIButton内部空间Rect
- UIButton的文本与图片的布局
UIButton内部文本和图片的布局是我们日常代码中,不可缺少的部分,按钮默认左边图片右边文本,那要实现左边文本,右边图片,我们该怎么解决呢,上面图片,下面文本又该怎么办呢 其实很简单,今天总结下,目 ...
- 5分钟 搞定UIButton的文本与图片的布局
UIButton内部文本和图片的布局是我们日常代码中,不可缺少的部分,按钮默认左边图片右边文本,那要实现左边文本,右边图片,我们该怎么解决呢,上面图片,下面文本又该怎么办呢 其实很简单,今天总结下,目 ...
- iOS阶段学习第27天笔记(UIButton-UIImageView的介绍)
iOS学习(UI)知识点整理 一.关于UIButton的介绍 1)概念:UIButton 是一种常用的控件,通过点击触发相应的功能 2)UIButton 的几种常用的状态 1.UICon ...
随机推荐
- JavaScript 属性描述符
属性描述符(Property Descriptor)是 ES5 之后出现的概念,顾名思义,它用于描述属性应该是什么样,例如是否只读,能否枚举,能否可配置等.所有对象属性均可使用属性描述符来定义. 属性 ...
- JavaScript手札:《编写高质量JS代码的68个有效方法》(一)(1~5)
编写高质量JS代码的68个有效方法(一) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...
- Mysql学习笔记(十三)权限管理
学习内容: 1.权限管理: 关于mysql的权限简单的理解就是mysql允许你做你权利以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执行update操作.只允许你从某台机器上连 ...
- Centos7 禁止firewalld并使用iptables 作默认防火墙
一.停止并禁用firewalld [root@test ~]# systemctl stop firewalld [root@test ~]# systemctl disable firewalld ...
- 将form表单元素转为实体对象 或集合 -ASP.NET C#
简介: 做WEBFROM开发的同学都知道后台接收参数非常麻烦 虽然MVC中可以将表单直接转为集实,但不支持表单转为 LIST<T>这种集合 单个对象的用法: 表单: <input n ...
- 关于JQUERY操作XML问题!
使用JQUERY操作XML方法: 1.$.get(”xml文件路径",function(data){}); 2.$.Post(”xml文件路径",function(data){}) ...
- JS魔法堂:精确判断IE的文档模式by特征嗅探
一.前言 苦逼的前端攻城狮都深受浏览器兼容之苦,再完成每一项功能前都要左顾右盼,生怕浏览器不支持某个API,生怕原生API内含臭虫因此判断浏览器类型和版本号成了不可绕过的一道关卡,而特征嗅探是继浏览器 ...
- 写出优美代码的两个方式:一步到位VS迭代优化
最近把手头这个安卓APP的所有事务性方法都写完了,有了以下体会,新手体会,老鸟轻拍 想写成优美代码的人一般都会有这样的想法: 一定要在写每一句代码,写每一个方法,构造每一个类的时候,都要记得优化: ...
- C#入门经典第五版之变量与表达式编码题训练
问题:编写一个控制台应用程序,要求用户输入4个int值,并显示它们的乘积.提示:可以使用Convert.ToDouble()命令,把用户在控制台上输入的数转换为double, 以此类推,转换成int命 ...
- [ASP.NET]谈谈REST与ASP.NET Web API
13天的假期结束,赶紧回来充电了 本节目录 Web API简介 自我寄宿 IIS寄宿 调用Web API Web API原理 Web API简介 REST REST是“REpresentational ...