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. Linux wget 命令 使用总结

    简介 wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服务器 ...

  2. Linux ns 6. Network Namespace 详解

    文章目录 1. 简介 1.1 Docker Network 桥接模式配置 2. 代码解析 2.1 copy_net_ns() 2.2 pernet_list 2.2.1 loopback_net_op ...

  3. 连接url

    celery broker redis with password broker_url = 'redis://user:password@redishost:6379/0' tooz zookeep ...

  4. mysql: 看不见的空符号 char(9) char(10) char(13)

    在统计年度销售额时,总觉得哪里不对劲.于是找了找,对了对,试了trim,消除前后的空格,也没反应. 在崩溃的边缘,终于发现了错的原因. 原来我在录入的时候,粘贴多了其他空白符号,看不见,摸不着,啊~ ...

  5. 3组-Alpha冲刺-3/6

    一.基本情况 队名:发际线和我作队 组长博客:链接 小组人数:10 二.冲刺概况汇报 黄新成(组长) 过去两天完成了哪些任务 文字描述 使用labelimg工具对采集的数据进行标注,安装alphapo ...

  6. Python基础(定制类)

    文章转载自廖雪峰老师Python课程博客,仅供学习参考使用看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道 ...

  7. 【ASP.NET Core】体验一下 Mini Web API

    在上一篇水文中,老周给大伙伴们简单演示了通过 Socket 编程的方式控制 MPD (在树莓派上).按照计划,老周还想给大伙伴们演示一下使用 Web API 来封装对 MPD 控制.思路很 Easy, ...

  8. oracle中是否有except函数: select * from a except select * from b

    除外: oracle没有except这个关键字,这个关键字属于sqlserver ,在oracle里,他叫minus,与except是一个意思. select a.code OrgId, b.code ...

  9. 基于Vue简易封装的快速构建Echarts组件 -- fx67llQuickEcharts

    fx67llQuickEcharts A tool to help you use Echarts quickly! npm 组件说明 这本来是一个测试如何发布Vue组件至npm库的测试项目 做完之后 ...

  10. MYSQL5.8----M2

    mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_s ...