iOS开发-UIButton

本文详细介绍了UIButton的各种样式设定及事件处理方式,包括按钮类型、背景颜色、标题、图片设置等,并深入探讨了不同状态下按钮的表现形式及触摸事件的响应机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//风格:type
 

   UIButton*button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
注:
    typedefNS_ENUM(NSInteger, UIButtonType) {
       UIButtonTypeCustom =0,          //默认
      UIButtonTypeRoundedRect,         //圆角
       UIButtonTypeDetailDisclosure,    //蓝色小箭头
       UIButtonTypeInfoLight,           //亮色感叹号
      UIButtonTypeInfoDark,            //暗色感叹号
       UIButtonTypeContactAdd,          //十字加号
    };

//位置:frame
    button.frame= CGRectMake(0, 0, 100, 30);

//设置背景颜色:backgroundColor
   button.backgroundColor = [UIColor redColor];
    [buttonsetBackgroundColor:[UIColor redColor]];

//标题:title
    [buttonsetTitle:@"标题" forState:UIControlStateNormal];
   
//标题颜色:titleColor
    [buttonsetTitleColor:[UIColor yellowColor]forState:UIControlStateNormal];

//标题阴影:shadow
    [buttonsetTitleShadowColor:[UIColor redColor]forState:UIControlStateNormal];   //颜色
   button.titleLabel.shadowOffset = CGSizeMake(4.0,2.0);                           //阴影偏移

//图片:image
    [buttonsetImage:[UIImage imageNamed:@"commit_no.png"]forState:UIControlStateNormal];
    [buttonsetImage:[UIImage imageNamed:@"commit_yes.png"]forState:UIControlStateHighlighted];
    [buttonsetBackgroundImage:[UIImage imageNamed:@"commit_no.png"]forState:UIControlStateNormal];

//事件:addTarget:action:forControlEvents:
    [button1_1addTarget:self action:@selector(print)forControlEvents:UIControlEventTouchUpInside];

//显示控件:addSubview
    [viewaddSubview:button];

//取消按钮已经添加的所有事件:removeTarget:action:forControlEvents:
   [button removeTarget:nilaction:nil forControlEvents:UIControlEventTouchUpInside];

//何种情况显示内容forState
    typedefNS_OPTIONS(NSUInteger, UIControlState) {
       UIControlStateNormal      =0,                      //常规状态显现
      UIControlStateHighlighte = 1<<0,                 //高亮状态显现
      UIControlStateDisabled    = 1 <<1,                 //禁用的状态才会显现
      UIControlStateSelected    = 1 <<2,                 //选中状态
       UIControlStateApplicatio =0x00FF0000,             //当应用程序标志时
      UIControlStateReserved    =0xFF000000              //为内部框架预留,可以不管他
};

//按下状态:UIControlEvents
    typedefNS_OPTIONS(NSUInteger, UIControlEvents) {
       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,     //DragOutside进入DragInside触发
       UIControlEventTouchDragExit      = 1 << 5,     //in到out触发
       UIControlEventTouchUpInside      = 1 << 6,     //在按钮及其一定外围内松开
       UIControlEventTouchUpOutside     = 1 << 7,     //按钮外面松开
       UIControlEventTouchCance       = 1 << 8,     //点击取消

       UIControlEventValueChanged       = 1 <<12,     // sliders, etc.

       UIControlEventEditingDidBegin    = 1 << 16,     // UITextField
       UIControlEventEditingChanged     = 1 << 17,
       UIControlEventEditingDidEnd      = 1 << 18,
       UIControlEventEditingDidEndOnExit = 1<<19,     // 'return key' endingediting

       UIControlEventAllTouchEvents     = 0x00000FFF,   // for touch events
       UIControlEventAllEditingEvents   = 0x000F0000,   // forUITextField
       UIControlEventApplicationReserved = 0x0F000000,  // range available for application use
       UIControlEventSystemReserved     = 0xF0000000,   // range reservedfor internal framework use
       UIControlEventAllEvents          = 0xFFFFFFFF   //
    };

//确定按钮高亮时是否改变阴影的Bool值,默认是NO
   button.reversesTitleShadowWhenHighlighted = YES;

//当按钮高亮时图片是否改变,默认是NO
   button.adjustsImageWhenHighlighted = YES;

//当按钮失效时图片是否改变,默认是NO
   button.adjustsImageWhenDisabled = YES;

//当按钮按下时是否闪光,默认是NO
   button.showsTouchWhenHighlighted = YES;

//一些只读属性

//重写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值