iOS中UIButton控件的用法及部分参数解释
在UI控件中UIButton是极其常用的一类控件,它的类对象创建与大多数UI控件使用实例方法init创建不同,通常使用类方法创建:
+ (id)buttonWithType:(UIButtonType)buttonType;
如果使用实例方法创建UIButton对象,如:
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(100, 300, 100, 50)];
对象的创建是没有任何问题的,但是当为这个button对象设置一个标题时,如:
[button setTitle:@"asd" forState:UIControlStateNormal];
但程序运行之后屏幕上是没有任何显示的,但这并不是程序有bug,只是当button使用实例方法创建时,标题文字的默认颜色是白色,在白色屏幕或无设置背景色的屏幕上自然是看不见的。而如果使用类方法创建UIButton对象,则需要输入一个UIButtonType类型的参数,这是一个枚举,具体如下:
typedef NS_ENUM(NSInteger, UIButtonType) {
UIButtonTypeCustom = 0, // 自定义类型,即无类型,当选择这个参数市与使用类方法效果相同
UIButtonTypeSystem, // 标准类型,一般情况下地选择,在iOS7.0版本开始使用
UIButtonTypeDetailDisclosure, //与标准类型相比多了一个蓝色的information标志
UIButtonTypeInfoLight, //information的标志亮一点
UIButtonTypeInfoDark, //information的标志暗一点
UIButtonTypeContactAdd, //与标准类型相比多了一个加号标志
UIButtonTypeRoundedRect = UIButtonTypeSystem, // 不赞成使用,已被标准类型代替
};
除了UIButtonTypeCustom以外其他枚举类型的默认颜色都是蓝色,几时在button上放置图片,最初的现实效果也是蓝色。
而自定义类型则可正确显示图片本来的颜色。此外,若同时为button设置图片和文字,则图片在左文字在右。
设置标题文字:- (void)setTitle:(NSString *)title forState:(UIControlState)state;
设置图片:- (void)setImage:(UIImage *)image forState:(UIControlState)state;
作用是在状态state下显示字符串对象title,图片image,其中如果要在不同状态显示不同图片则需要图片相同大小,否则会错误显示。
其中UIControlState是枚举类型,具体如下:
typedef NS_OPTIONS(NSUInteger, UIControlState) {
UIControlStateNormal = 0, //正常状态
UIControlStateHighlighted = 1 << 0, // 高亮状态,当button被点击时会从正常状态转变为高亮状态,松开时自动转化为正常转态
UIControlStateDisabled = 1 << 1, //不可用状态,通过属性enabled设置
UIControlStateSelected = 1 << 2, // 选中转态,通过属性selected设置
UIControlStateApplication = 0x00FF0000, // 当应用程序标志时
UIControlStateReserved = 0xFF000000 //为内部框架预留
};
常见的用法是:
[button setTitle:title1 forState:UIControlStateNormal];
[button setTitle:title2 forState:UIControlStateHighlighted];
这样button的正常状态显示title1,按下时显示title2,松开时显示title1.
设置图片同理。
设置背景图片:- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
与设置图片不同,背景图片显示在文字下方,而不是左边。
设置标题文字颜色:- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
此方法只改变标题文字颜色,不影响图片颜色,而属性tintColor则同时影响标题文字和图片的颜色,但不影响背景图像颜色。另外,当UIButton创建时选择UIButtonTypeCustom或使用实例方法创建时属性tintColor无效。
设置响应事件:- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
意思是当controlEvents发生时target调用action方法,用OC的说法就是发送action消息给target对象。
其中controlEvents是枚举类型,具体如下:
typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
UIControlEventTouchDown = 1 << 0, // 按钮按下事件
UIControlEventTouchDownRepeat = 1 << 1, // 双击或多次点击事件
UIControlEventTouchDragInside = 1 << 2, //控件窗口内部拖动事件
UIControlEventTouchDragOutside = 1 << 3, //控件窗口外部拖动事件
UIControlEventTouchDragEnter = 1 << 4, //从控件窗口外部拖动进入内部事件
UIControlEventTouchDragExit = 1 << 5, //控件窗口外部拖动进入内部事件
UIControlEventTouchUpInside = 1 << 6, //控件窗口内部点击抬起事件,发生在UIControlEventTouchDown事件之后
UIControlEventTouchUpOutside = 1 << 7, //控件窗口内部点击窗口外部抬起事件
UIControlEventTouchCancel = 1 << 8, //所有点击取消事件,如:太多手指,上锁,或有电话进入
UIControlEventValueChanged = 1 << 12, // 控件值改变事件,多用于UISlider,UISegmentControl,UIPageControl
UIControlEventEditingDidBegin = 1 << 16, // UITextField开始编辑事件,即进入第一响应时
UIControlEventEditingChanged = 1 << 17, //UITextField中的文字改变时
UIControlEventEditingDidEnd = 1 << 18, //UITextField结束编辑时,即取消第一响应时
UIControlEventEditingDidEndOnExit = 1 << 19, // 点击'return key'时,默认是换行键,会自动取消第一响应结束编辑
UIControlEventAllTouchEvents = 0x00000FFF, // 所有触摸事件
UIControlEventAllEditingEvents = 0x000F0000, // 所有 UITextField编辑事件
UIControlEventApplicationReserved = 0x0F000000, // range available for application use
UIControlEventSystemReserved = 0xF0000000, // range reserved for internal framework use
UIControlEventAllEvents = 0xFFFFFFFF //所有事件
};
取消响应事件:- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
作用是取消当controlEvents发生时target对action的响应,即当事件发生时target不再触发方法action,当然前提是之前已经添加了对这个事件的方法响应,其中参数均可设置为nil,表示任意、所有,即移除全部。
iOS中UIButton控件的用法及部分参数解释的更多相关文章
- MFC中按钮控件的用法笔记(转)
VC学习笔记1:按钮的使能与禁止 用ClassWizard的Member Variables为按钮定义变量,如:m_Button1:则m_Button1.EnableWindow(true); 使按钮 ...
- 如何自定义iOS中的控件
本文译自 How to build a custom control in iOS .大家要是有什么问题,可以直接在 twitter 上联系原作者,当然也可以在最后的评论中回复我. 在开发过程中,有时 ...
- Delphi中TxmlDocument控件的用法 转
Delphi中对XML文件的解析做的很好,比直接使用MS的MSXML2_TLB中的接口要方便很多,现称述于下面. 在讲之前先给出一个XML实例,在讲某些部分是要结合实例比较容易理解. 1<?xm ...
- iOS 中UI控件的各种对齐方式总结
1.textAligment : 文字的水平方向的对齐方式 取值 NSTextAlignmentLeft = 0, // 左对齐 NSTextAlignmentCenter = ...
- winform 窗体中 Time 控件的用法
作用: 用于背景进程中.通过引发Timer事件,Timer控件可以有规律的隔一段时间执行一次代码.也就是,你可以根据你自己的需要,给Timer控件设置时间,Timer每隔这段时间,就执行一次代码. 属 ...
- C# WinForm中NotifyICon控件的用法
参考:http://blog.csdn.net/paullink520/article/details/14170021 http://www.cnblogs.com/webman/archive/2 ...
- ios 中基本控件的定义
我的开发笔记--UILabel的详细使用及特殊效果 我的开发笔记--UIButton的详细使用 我的开发笔记---UISegmentedControl的详细使用 我的开发笔记---UITextFiel ...
- xAML中一些控件的用法学习
首先,介绍一些比较简单的设计,这些可以直接通过拖拽实现.如下例子: <Window x:Class="wpf1.MainWindow" xmlns="http:// ...
- C#中axWindowsMediaPlayer控件的用法
属性/方法名: 说明:[基本属性] URL:String; 指定媒体位置,本机或网络地址uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisibleplay ...
随机推荐
- 随机返回经典语句接口API
api接口:https://www.liutianyou.com/api/?type=js&charset=utf-8 可以单独将上面链接,在浏览器中查看效果 这是get请求,参数:typ ...
- thinkphp5 部署到iis服务器url重写
thinkphp部署到iis服务器配置url重写的解决方法: 1.下载 url rewrite.下载地址:https://www.iis.net/downloads/microsoft/url-rew ...
- sourcetree .git 强制忽略指定文件不提交
在公司写项目,大部分都会用到 svn 或 git 提交代码到服务器.我们公司用的GIT,每个程序员有自己的独立分支,各写各的代码互不冲突,最终合并到主分支再解决相同代码冲突问题.这时候会遇到一些配置文 ...
- Mac进度条卡在100%
- python闭包的概念及使用
闭包:在函数里定义了另外一个函数(函数嵌套),内函数里运用了外函数的变量,外函数返回内函数的函数引用(函数名). nonlocal 的使用:闭包内部函数可直接调用外部函数的变量,如果修改需要使用non ...
- python教程(一)·python环境搭建
python的环境搭建总的来说分为两大步:下载.安装(废话@_@).在这里以windows为例(Linux通常内置了python,就算没有内置,相信Linux用户也非常清楚软件的安装方法) 第一步-下 ...
- PTA基础编程题目集7-2然后是几点
有时候人们用四位数字表示一个时间,比如1106表示11点零6分.现在,你的程序要根据起始时间和流逝的时间计算出终止时间. 读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计 ...
- 【Hutool】Hutool工具类之随机工具——RandomUtil
commons-lang中对应也有RanddomUtils.RandomStringUtils 直接从类结构开始入手: 基本都是见名知意了,就不一一展开:点开源码可以看到算是比较通俗易懂的对Rando ...
- 天津Uber优步司机奖励政策(12月14日到12月20日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- DSP5509开发之FPGA接口
1. DSP5509和FPGA或者CPLD之间是什么接口,DSP相对普通MCU,具有专门的硬件乘法器,程序和数据分开的哈弗结构,特殊的DSP指令,快速的实现各种数字信号处理算法.在一个周期内可以完成一 ...