一、简单说明
一般情况下,点击某个控件后,会做出相应反应的都是按钮
按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置
二、基本用法 1.创建
// 基本创建方法
UIButton *button = [[UIButtonalloc] init];
// 便利构造器创建方法
UIButton *button1 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
便利构造器风格(是一个枚举)如下
typedef enum {
UIButtonTypeCustom = 0, // 自定义,无风格
UIButtonTypeRoundedRect, // 白色圆角矩形,类似偏好设置表格单元或者地址簿卡片
UIButtonTypeDetailDisclosure, //蓝色的披露按钮,可放在任何文字旁
UIButtonTypeInfoLight, //微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁
UIButtonTypeInfoDark, //白色背景下使用的深色圆圈信息按钮
UIButtonTypeContactAdd, //蓝色加号(+)按钮,可以放在任何文字旁
} UIButtonType;
2.设置属性
1)Frame属性
// 参数为x, y,按钮的长, 按钮的宽,根据需求来更改位置和大小
button1.frame =CGRectMake(10,10, 40, 30);
2)属性
对于任何特定状态下的按钮,都可以设定该按钮该状态下的按钮标题。用setTitle 方法 设置即可:
// 设定按钮的标题
[button1 setTitle:@"点击"forState:UIControlStateNormal];
// 设定标题的颜色
[button1 setTitleColor:[UIColorredColor] forState:UIControlStateNormal];
你也可以为按钮设置图片:
// 为按钮的某一状态状态设置图片
[button1 setImage:[UIImageimageNamed:@"pic"]forState:UIControlStateNormal];
//为按钮设置背景图片
[button1 setBackgroundImage:[UIImageimageNamed:@"pic"]forState:UIControlStateHighlighted];
你还可以为每种按钮状态设置标题阴影。方法 setTitleShadowColor 需要一个UIColor对象做参数:
// 阴影颜色
[button1 setTitleShadowColor:[UIColorgrayColor] forState:UIControlStateNormal ];
上面几个方法都提到 共同的参数 UIControlState(也是一个枚举) . 这个参数决定了标题、图像或其他属性将在何种状态下显现。你可以编程令按钮在哪个状态变化
enum {
UIControlStateNormal = 0, //常态
UIControlStateHighlighted = 1 << 0, // 高亮
UIControlStateDisabled = 1 << 1, //禁用
UIControlStateSelected = 1 << 2, // 选中
UIControlStateApplication = 0x00FF0000, // 当应用程序标志使用时
UIControlStateReserved = 0xFF000000 // 为内部框架预留的
};
typedef NSUInteger UIControlState;
3.重写绘制行为
你可以通过子类化按钮来定制属于你自己的按钮类。在子类化的时候你可以重载下面这些方法,这些方法返回CGRect结构,指明了按钮每一组成部分的边界。
注意:不要直接调用这些方法, 这些方法是你写给系统调用的
- (CGRect)backgroundRectForBounds:(CGRect)bounds; //指定背景边界
- (CGRect)contentRectForBounds:(CGRect)bounds; // 指定内容边界
- (CGRect)titleRectForContentRect:(CGRect)contentRect; // 指定文字标题边界
- (CGRect)imageRectForContentRect:(CGRect)contentRect; //指定按钮图像边界
4.添加动作(button最重要的功能)
按钮是用来干嘛的?用来触发某个动作或事件的。那我们我们要为他添加一个动作:
// 添加点击事件
[button1 addTarget:selfaction:@selector(buttonAction:)forControlEvents:UIControlEventTouchUpInside];
// button1 的点击事件
- (void)buttonAction:(id)sender
{
// button 即触发事件的那个按钮
UIButton *button = (UIButton *)sender;
//写想要进行的操作
NSLog(@"点击成功");
}
5.运行结果
运行模拟器后,手机屏幕上会出现这个按钮
点击按钮,触发成功后,控制台会输出所打印的内容.
最后,推荐使用这个控件写一下关灯游戏,或者打地鼠游戏.