iOS_UI_4_UIButton

一. UIButton定义

UIButton(按钮): 用于点击来执行一定功能的控件, 继承于UIContol.

二. UIButton创建

两种创建方式:

// 用 buttonWithType 创建:
UIButton *button = [[UIButton buttonWithType:(UIButtonType);
button.frame = CGRectMake(20, 20, 280, 40);
// 用 initWithFrame 创建:
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(20, 20, 280, 40)];
// 此种创建方式只能用默认样式 , 一般不用
/*
/* UIButtonType
能够定义的button类型有以下6种,
typedef enum {
UIButtonTypeCustom = 0, //自定义风格
UIButtonTypeRoundedRect, //圆角矩形
UIButtonTypeDetailDisclosure, //蓝色小箭头按钮,主要做详细说明用
UIButtonTypeInfoLight, // 亮色感叹号
UIButtonTypeInfoDark, // 暗色感叹号
UIButtonTypeContactAdd, // 十字加号按钮
 } UIButtonType;
*/
*/

三. 设置frame

button.frame = CGRectMake(20, 20, 280, 40);
[button setFrame:CGRectMake(20,20,50,50)];

四. forState
forState: 这个参数的作用是定义按钮的文字或图片在何种状态下才会显现

// state
enum {
UIControlStateNormal = 0, //常规状态显现
UIControlStateHighlighted = 1 << 0, //高亮状态显现
UIControlStateDisabled = 1 << 1,  //禁用的状态才会显现
UIControlStateSelected = 1 << 2,  //选中状态
UIControlStateApplication = 0x00FF0000, //当应用程序标志时
UIControlStateReserved = 0xFF000000 //为内部框架预留
};

@property(nonatomic,getter=isEnabled)BOOL enabled;                                
// default is YES. if NO, ignores touch events and subclasses may draw differently

@property(nonatomic,getter=isSelected)BOOL selected;                              
// default is NO may be used by some subclasses or by application

@property(nonatomic,getter=isHighlighted)BOOL highlighted;
*/

五. 设置标题和标题颜色

[button setTitle:@"点击" forState:UIControlStateNormal];
[buttonsetTitleColor:[UIColorredColor]forState:UIControlStateNormal];

六. 设置背景图片和前景图片

    //增加背景图片,图片如果小会铺满整个背景
    [button setBackgroundImage:[UIImage imageNamed:@"***.png"] forState:UIControlStateNormal];

    //增加前景图片,这种方式不会缩放图片,而且会居中
    [button setImage:[UIImage imageNamed:@"logo.png"] forState:UIControlStateNormal];
    //设置按钮文字,增加的文字会和setImage图片一并居中,图片在左边,文字紧随其后
    [button setTitle:@"自定义按钮" forState:UIControlStateNormal];

    //如果需要***重新排版这个图片和按钮文字***的位置,则需要重写UIButton类里面的两个函数,点击UIButton可查看


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

     UIEdgeInsets insets; // 设置按钮内部图片间距
     insets.top = insets.bottom = insets.right = insets.left = 10;
     button.contentEdgeInsets = insets;
     button.titleEdgeInsets = insets; // 标题间距

     - (CGRect)titleRectForContentRect:(CGRect)contentRect;文字相对于按钮的位置

     - (CGRect)imageRectForContentRect:(CGRect)contentRect;图片相对于按钮的位置

七. 设置按钮按下的发光状态

button.showsTouchWhenHighlighted = YES; // 默认为NO不发光

八. 添加事件, 删除事件

// 重点:
[button addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];

[button removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];
// controlEvent

    // UIControlEvent
    /*  
     //. 点下去
     UIControlEventTouchDown           = 1 <<  0,      // on all touch downs
     // . 双击
     UIControlEventTouchDownRepeat     = 1 <<  1,      // on multiple touchdowns (tap count > 1)
     // .往里拖拽
     UIControlEventTouchDragInside     = 1 <<  2,
     // .往外拖拽
     UIControlEventTouchDragOutside    = 1 <<  3,
     // .拖拽确实
     UIControlEventTouchDragEnter      = 1 <<  4,
     // .拖拽退出
     UIControlEventTouchDragExit       = 1 <<  5,
     // .点击进入
     UIControlEventTouchUpInside       = 1 <<  6,
     // .点击退出
     UIControlEventTouchUpOutside      = 1 <<  7,
     // .触摸取消
     UIControlEventTouchCancel         = 1 <<  8,
     // . 多与UISlider配合使用
     UIControlEventValueChanged        = 1 << 12,     // sliders, etc.

     // 下面的不常用
     UIControlEventEditingDidBegin     = 1 << 16,     // UITextField
     UIControlEventEditingChanged      = 1 << 17,
     UIControlEventEditingDidEnd       = 1 << 18,
     UIControlEventEditingDidEndOnExit = 1 << 19,     // 'return key' ending editing
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值