UIButton详解

第二篇文章来学习UIButton,这是一个我们最常用的控件之一,可往往最常用的却还有很多不了解的东西,苹果也为这个控件设计了很多有意思的东西。

首先还是,storyboard属性:


  • Type:Custom:自定义风格(无边框的那种);system:圆角矩形(系统的那种);DetailDisclosure:蓝色小箭头按钮,主要做详细说明用(ios7上变成一个亮的蓝色感叹号);InfoLight:亮色感叹号;InfoDark:暗色感叹号;ContactAdd:十字加号按钮;
  • State Config:Default:常规状态显现;Highlighted:高亮状态显现;Selected:选中状态;Disabled:禁用的状态才会显现.
  • Title:plain常规的。attributed属性可以更改一个label文字中不同的颜色。
  • font:改变文字字体和文字大小;
  • Text Color:改变字体颜色;
  • Shadow Color:阴影颜色;
  • Image:摁钮图片显示;
  • Background:背景图片;
  • Shadow Offset:阴影大小;
  • Drawing:Reverse On Highlight:阴影在雕刻浮雕外观之间翻转,默认为NO(翻译不准确,原文:default is NO. if YES, shadow reverses to shift between engrave and emboss appearance);Shows Touch On Highlight:下面的这个属性设置为yes的状态下,按钮按下会发光,默认为NO;HighlightedAdjusts Image:当按钮高亮的情况下,图像的颜色会被画深一点,默认为YES。Disabled Adjusts Image:当按钮禁用的情况下,图像的颜色会被画深一点,默认为YES。
  • line breaks:文字剪裁方式。Clip:简单剪裁,到边界为止;CharWrapping:保留整个字符;WordWrapping:以空格为边界,保留单词;TruncatingHead:按照"......文字"显示;TruncatingTail:按照"文字......文字"显示;TruncatingMiddle:按照"文字......"显示.
  • Edge:这个是设置摁钮上的文字或者图片在摁钮上的相对位置的。可以一起设置,也可以分别选择Image和Title,分别设置。下面是Inset是设置的坐标。成型之后可以设置成这个样子的。可以图片上即存在图标又存在文字,这样比用整体贴图要好。
  • Control:Alignment:设置对齐位置默认都是居中;
  • Content:当前摁钮的状态:selected:选中;Enable:是否正在启用;Highlight:是否高亮;
  • View:这是摁钮下面的一个自带的view的属性。设置这个同时也就设置了这个Button。如设置了这个Alpha或者Hidden,或者设这tag也就是设置这个Button。
代码
1.创建一个圆角矩形的按钮
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
2.button类型有以下6种,
typedef NS_ENUM(NSInteger, UIButtonType) {
    UIButtonTypeCustom = 0,                         // no button type
    UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),  // standard system button

    UIButtonTypeDetailDisclosure,
    UIButtonTypeInfoLight,
    UIButtonTypeInfoDark,
    UIButtonTypeContactAdd,
    
    UIButtonTypeRoundedRect = UIButtonTypeSystem,   // Deprecated, use UIButtonTypeSystem instead
};
3.设置Button的frame:
button1.frame = CGRectMake(100,100,50,50);
4.Button的状态展示:
typedef NS_OPTIONS(NSUInteger, UIControlState) {
    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		// 为内部框架预留
};

5.BUTTON每个状态时设置图片
[button1 setImage:[UIImage imageNamed:@"image"] forState:UIControlStateNormal];

6.为Button上面的文字title设置文本:
[button1 setTitle:@"BTN1" forState:UIControlStateNormal];

7.为title设置颜色
[button1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

8.为title设置阴影
[button1 setTitleShadowColor:[UIColor grayColor] forState:UIControlStateNormal];

9.设置背景图片
[button1 setBackgroundImage:[UIImage imageNamed:@"PIC"] forState:UIControlStateHighlighted];

10.显示或添加控件
[self.view addSubview:button1];

11.添加动作
[button1 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];

-(void)btnPressed:(id)sender{   //sender就是那个按钮本身
    
    UIButton* btn = (UIButton*)sender;
    
    //开始写你自己的动作
}

有关动作状态的声明
typedef NS_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,
    UIControlEventTouchDragExit       = 1 <<  5,
    UIControlEventTouchUpInside       = 1 <<  6,
    UIControlEventTouchUpOutside      = 1 <<  7,
    UIControlEventTouchCancel         = 1 <<  8,

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

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

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




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值