UIButton

1. 功能

  • 既能显示文字,又能显示图片(能显示2张图片,背景图片、内容图片)
  • 长按高亮的时候可以切换图片\文字
  • 直接通过addTarget...方法监听点击

2. 状态

  • normal(普通状态)

    • 默认情况(Default)
    • 对应的枚举常量:UIControlStateNormal
  • highlighted(高亮状态)

    • 按钮被按下去的时候(手指还未松开)
    • 对应的枚举常量:UIControlStateHighlighted
  • disabled(失效状态,不可用状态)

    • 如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击
    • 对应的枚举常量:UIControlStateDisabled

3. 样式

  • 在用代码创建按钮的同时指定按钮样式

    • UIButtonTypeCustom:无类型,按钮的内容需要自定义
    • UIButtonTypeDetailDisclosure:蓝色小箭头按钮,主要用来做详细说明
    • UIButtonTypeInfoLight:亮色感叹号
    • UIButtonTypeInfoDark:暗色感叹号
    • UIButtonTypeContactAdd:十字加号按钮
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

4. 常见设置

  • (void)setTitle:(NSString *)title forState:(UIControlState)state;

    • 设置按钮的文字
  • (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;

    • 设置按钮的文字颜色
  • (void)setImage:(UIImage *)image forState:(UIControlState)state;

    • 设置按钮内部的小图片
  • (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;

    • 设置按钮的背景图片
  • btn.titleLabel.font = [UIFont systemFontOfSize:13];

    • 设置按钮的文字字体(需要拿到按钮内部的label来设置)
  • (NSString *)titleForState:(UIControlState)state;

    • 获得按钮的文字
  • (UIColor *)titleColorForState:(UIControlState)state;

    • 获得按钮的文字颜色
  • (UIImage *)imageForState:(UIControlState)state;

    • 获得按钮内部的小图片
  • (UIImage *)backgroundImageForState:(UIControlState)state;

    • 获得按钮的背景图片

5. 常见属性

  • enable(是否可用)
//自定义
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
//状态
setImage//图片
//设置按钮在不同状态下的背景图片(为了保证高亮状态下的图片正常显示,必须设置按钮的type为custom)
setBackgroundImage//背景图片
setTitle//文字
setTitleColor//文字颜色
//监听按钮
//当UIControlEventTouchUpInside时,调用btn的buttonClick方法
[btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
  • 因为UIImage和UILabel不是继承UIControl,只有继承UIControl才能通过addTarget来监听事件

  • 只能通过enabled = NO达到UIControlStateDisables状态,设置userInterationEnabled = NO,并不能让按钮达到这个状态

UIButton总结的更多相关文章

  1. AFNetworking 3.0 源码解读(十一)之 UIButton/UIProgressView/UIWebView + AFNetworking

    AFNetworking的源码解读马上就结束了,这一篇应该算是倒数第二篇,下一篇会是对AFNetworking中的技术点进行总结. 前言 上一篇我们总结了 UIActivityIndicatorVie ...

  2. 记录下UIButton的图文妙用和子控件的优先显示

    UIButton的用处特别多,这里只记录下把按钮应用在图文显示的场景,和需要把图片作为按钮的背景图片显示场景: 另外记录下在父控件的子控件优先显示方法(控件置于最前面和置于最后面). 先上效果图: 1 ...

  3. iOS学习-UIButton的imageView和titleLabel

    UIButton的imageView和titleLabel的位置设置通过setImageEdgeInsets和setTitleEdgeInsets来设置 参考:http://blog.csdn.net ...

  4. iOS小知识:使UIButton中的图片和文字实现左对齐

    UIButton setImage 和 setTitle之后,默认的 image和title 对齐方式是居中, 由于 title 长度不固定,所以如果要几个这样有image有title的按钮纵向排列对 ...

  5. UIButton无法响应点击事件

    一.问题描述 因为项目需要,需要UITableView上添加固定的筛选表头,一直固定,不能随UITableView滚动.所以直接将表头与UITableView分离,将它添加到控制器的UIView上,即 ...

  6. 布局包含Image和Title的UIButton

    UIButton中的titleEdgeInsets和imageEdgeInsets可以管理button中image和title的布局. 如果对其理解不够深入,用纯数字进行布局管理,经过不断的调试,还是 ...

  7. UI控件(UIButton)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // UIButtonTypeCustom = 0, ...

  8. 自定义UIButton

    偶尔逛简书能看见很多值得记下来的东西,有的接触过有的没接触过,接触过的也可能过段时间就忘记了,再上手的时候可能手足无措,所以决定有些觉得值得记下来的东西还是记录一下.博客是个好地方,因为很多人都能搜索 ...

  9. UITableView或UIScrollVIew上的UIButton的高亮效果

    UITableView或UIScrollVIew上的UIButton的高亮效果 原文地址:http://www.jianshu.com/p/b4331f06bd34 最近做项目的时候发现,UIScro ...

  10. UIButton

    //UIButton->UIControl->UIView //UIControl 带有操作的控件都是继承于它的 //UIButton  实例化  类方法实例化 //实例化时没有位置及大小 ...

随机推荐

  1. springcloud优雅停止上下线与熔断

    SpringCloud 服务优雅上下线 Spring Boot 框架使用"约定大于配置"的特性,优雅流畅的开发过程,应用部署启动方式也很优雅.但是我们通常使用的停止应用的方式是 k ...

  2. SpringBoot热部署(7)

    1.引入热部署依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId ...

  3. Jmeter接口数据流测试及持续集成部署:(一)Jmeter环境搭建:安装JDK、安装Jmeter、安装Fiddler、安装ant

    Jmeter环境搭建 1.安装JDK 官方下载地址:https://www.oracle.com/java/technologies/downloads/ 安装方法:双击jdk安装包,一直下一步安装即 ...

  4. sqlalchemy flush commit

    https://segmentfault.com/q/1010000000698181 flush 将sql发送到内存 commit 真正提交

  5. Oracle中对数字加汉字的排序

    需求:有一列NAME, varchar2类型,内容如下 以上就是已经按order by name进行排序的,但不是我们想要的结果 现在需要只按数字进行排序 第一步:抽取数字由于数字有是一位的有是两位的 ...

  6. 程序员PS技能(四):程序员创建PSD文件、展示简单PSD设计流程,上传PSD至蓝湖,并下载Demo切图

    前言   本篇是程序员仿照ui设计创建psd且切图五个按钮效果上传至蓝湖,本篇篇幅较长,整体完成一个目标,没有分篇幅了.   前提条件   已经安装了PS,已经在PS上安装了蓝湖插件,并且曾经已经上传 ...

  7. [loj3048]异或粽子

    先对其求出前缀异或和,然后$o(k)$次枚举,每次选择最大值,考虑如何维护可以全局开一个堆,维护出每一个点的最大值的最大值,那么相当于要在一个点中删去一个点再找到最大值将这些删去的点重新建成一颗tri ...

  8. [bzoj1115]石子游戏

    考虑令$bi=ai-a_{i-1}$,那么每一次操作相当于让$bi-=x$且$b_{i+1}+=x$,相当于从i向i+1移动x个石子,那么容易发现偶数堆没有用处,因为另一方可以用同样的操作,因此问题相 ...

  9. restTemplate的问题-feign的项目

    restTemplate的问题  1.场景描述 在使用feign的项目中,偶然的使用到了restTemplate 在普通方法调用是可以访问的,一旦使用了restTemplate,出现报错 比如: 百度 ...

  10. 多线程02.继承Thread类

    package chapter2; /** * 1.使用static虽然完成了当前的功能. * 但是static的生命周期比较长,需要在所有线程执行完成后才会结束. * 还有号没有按照顺序进行打印 * ...