UIButton 按钮

介绍:UIButton的类是一个UIControl子类,它实现了在触摸屏上的按钮。触摸一个按钮拦截事件和动作消息发送到目标对象时。设定的目标和行动方法都继承自UIControl。这个类提供了方法来设置标题,图像,按钮等外观属性。通过使用set方法,你可以指定一个不同的外观为每个按钮状态。

创建使用步骤:

1.UIButton*btn = [UIButtonbuttonWithType:UIButtonTypeCustom];//创建对象

2.[self.viewaddSubview:btn];//添加按钮

3.btn.frame=CGRectMake(100,100,100,100);//设置按钮的位置和尺寸,才能显示

4.btnaddTarget:selfaction:@selector(btnClick)//监听按钮的点击事件forControlEvents:UIControlEventTouchUpInside];监听按钮点击(点击按钮后就会调用self的btnClick方法) //都能调用void和IBactionTarget目标(让谁做事情)—>控制器action方法(做什么事情)Events事件(当按钮触发某事件)点击按钮内部并松手

类方法:

UIButton*btn = [UIButtonbuttonWithType:UIButtonTypeCustom]; //按钮类型

创建的button类型有以下6种,

typedef enum {

UIButtonTypeCustom = 0, 自定义风格

UIButtonTypeRoundedRect,圆角矩形

UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用

UIButtonTypeInfoLight, 亮色感叹号

UIButtonTypeInfoDark, 暗色感叹号

UIButtonTypeContactAdd, 十字加号按钮

} UIButtonType;

删除事件处理

[btn removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];

UIButton、UILabel、UITextField都继承自UIView

属性:

1.Frame属性

第2种方法创建按钮后你可以给按钮的frame属性赋值,用一个CGRect结构设置他的位置和大小

CGRect btn2Frame = CGRectMake(10.0, 10.0, 60.0, 44.0);

btn2.frame =btn2Frame;

2. title属性

对于任何特定状态下的按钮,都可以设定该按钮该状态下的按钮标题。用setTitle 方法 设置即可:

[btn1 setTitle:@"BTN1" forState:UIControlStateNormal];

3. image属性

你也可以为按钮的某一状态设置为图。用 setImage 即可:

[btn2 setImage:[UIImage imageNamed:@"pic"] forState:UIControlStateNormal];

4. Color属性

此外,你还可以为每种按钮状态设置标题的颜色和阴影,以及按钮的背景。方法 setTitleColor 和 setTitleShadowColor 都需要一个UIColor对象做参数:

[btn1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];//设置标题颜色

[btn1 setTitleShadowColor:[UIColor grayColor] forState:UIControlStateNormal ];//阴影

[btn1 setBackgroundImage:[UIImage imageNamed:@"PIC"] forState:UIControlStateHighlighted];//背景图像

5.使用时状态

上面几个方法都提到 共同的参数 forState . 这个参数决定了标题、图像或其他属性将在何种状态下显现。你可以编程令按钮在那个状态变化

enum {

UIControlStateNormal       = 0,  //常态

UIControlStateHighlighted  = 1 << 0,                  // used when UIControl isHighlighted is set 高亮

UIControlStateDisabled     = 1 << 1,  //禁用

UIControlStateSelected     = 1 << 2,                  // flag usable by app (see below) 选中

UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use 当应用程序标志使用时

UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use  为内部框架预留的

};

typedef NSUInteger UIControlState;

设置按钮按下会发光

button.showsTouchWhenHighlighted=NO;

设置按钮内部图片间距和标题间距

UIEdgeInsets insets; // 设置按钮内部图片间距

insets.top = insets.bottom = insets.right = insets.left = 20;

bt.contentEdgeInsets = insets;

bt.titleEdgeInsets = insets; // 标题间距

提示:

·按钮的背景颜色background color不能分状态,因为继承UIView [对象 setbackgroundColor] 没状态

·默认加入内容image(及其文字title)图片水平居中 //通过Control属性的alignment属性修改对齐,最后个(水平对齐)能使图片拉伸【第一次在IB中添加会是图片尺寸大小】【backimage会是按钮大小(拉伸压缩)】

·默认背景图片background会被拉伸,按钮图片都能被压缩(控件尺寸小于图片)

·不能直接修改对象的buttonType属性(readonly),只能在初始化创建时候设置 ,设置状态时设置按钮文字图片

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容