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. springboot利用mock进行junit单元测试,测试controller

    1  spring-boot-starter-test内置mockito,添加pom依赖 <dependency> <groupId>org.springframework.b ...

  2. UDP端口检查告警SHELL脚本(企业微信版机器人版)

    脚本准备 0Batch_Check.sh 1port_check.sh 2wechat_bot_alert.sh CheckList CheckList #支持大/小写 10.1.1.5 Udp 53 ...

  3. Java设计模式之(三)——建造者模式

    1.什么是建造者模式 Separate the construction of a complex object from its representation so that the same co ...

  4. HMS Core Insights第八期直播预告--创新能力解读

    [导读] 在上个月举办的HDC2021华为开发者大会上,全新登场的HMS Core 6向大家展示了包括媒体.图形.连接与通信等领域的众多全新开放能力.如仅用一部RGB摄像头的手机即可完成的3D建模,在 ...

  5. [cf587D]Duff in Mafia

    二分最大边权,即有些边强制不能被选 接下来,即任意一点上某两边不能同时被选,以及任意一点上颜色相同的两边必须被选择一条 这些限制都可以用2-sat的形式来描述(强制不能选即连边"选-> ...

  6. [bzoj2789]Letters

    考虑A中第i次出现的j字符,最终位置一定是在B中第i次出现的j字符的位置,然后即求逆序对数量,cdq/线段树即可 1 #include<bits/stdc++.h> 2 using nam ...

  7. [atARC083F]Collecting Balls

    考虑一个构造,对于坐标$(x,y)$,连一条$x$到$y$的边(注意:横坐标和纵坐标即使权值相同也是不同的点),之后每一个连通块独立,考虑一个连通块内部: 每一个点意味着一次删除操作,每一个边意味着一 ...

  8. 手把手教你实现Android真机远程截屏

    先看效果演示 接下来手把手教你实现这样的效果. minicap简介 minicap是一个可以远程获取android屏幕画面的开源库,它在低版本的Android系统上采用截屏的方式获取画面,在Andro ...

  9. buu

    buuCTFwp(1~32) 1.签到题 题里就有flag flag{buu_ctf} 2.二维码 1.题目是一个二维码,用010发现提示四位数字,想到应该是暗藏压缩包 2.虚拟机foremost分离 ...

  10. 在SEO过程中,如何避免网站中出现软404

    这篇文章分享一个SEO的问题,软404.我们在网站中经常见到的一个状态码就是404.无论我们是否开发一个网站,这都是要面对的一个问题 何谓软404 在说软404之前,我们首先要了解什么是404.404 ...