UIButton控件

原创 2015年11月21日 11:20:22
UIButton控件
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];//创建一个自定义的Button,Custom(自定义)

Button属性

添加点击事件/移除按钮的点击事件
addTarget/removeTarget

setImage: forState: 设置指定状态下的前景图片 
imageForState: 获取指定状态下的前景图片
setBackgroundImage: forState: 设置指定状态下的背景图片
backgroundImageForState: 获取指定状态下的背景图片

UIButton是否被点击,改变背景的方法:

-(void)change:(UIButton *)button{

    if (button.isSelected) {

        [button setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];

    }else{

        [button setBackgroundImage:[UIImage imageNamed:@"checked"] forState:UIControlStateNormal];

    }

    button.selected = !button.selected;

}


 UIButton的几种触发方式:

1、UIControlEventTouchDown 

指鼠标左键按下(注:只是“按下”)的动作

2、UIControlEventTouchDownRepeat

指鼠标左键连续多次重复按下(注:只是“按下”)的动作,比如,鼠标连续双击、三击、……、多次连击。

说明:多次重复按下时,事件序列是这样的:

UIControlEventTouchDown -> 

(UIControlEventTouchUpInside) -> 

UIControlEventTouchDown -> 

UIControlEventTouchDownRepeat -> 

(UIControlEventTouchUpInside) -> 

UIControlEventTouchDown -> 

UIControlEventTouchDownRepeat -> 

(UIControlEventTouchUpInside) ->

......

除了第一次按下外,后面每次摁下都是一个UIControlEventTouchDown事件,然后紧跟一个UIControlEventTouchDownRepeat事件。

3、UIControlEventTouchDragInside

指按下鼠标,然后在控件边界范围内拖动。

4、UIControlEventTouchDragOutside

与UIControlEventTouchDragInside不同的是,拖动时,鼠标位于控件边界范围之外。

但首先得有个UIControlEventTouchDown事件,然后接一个 UIControlEventTouchDragInside事件,再接一个UIControlEventTouchDragExit事件,这时,鼠标已 经位于控件外了,继续拖动就是UIControlEventTouchDragOutside事件了。

具体操作是:在控件里面按下鼠标,然后拖动到控件之外。

5、UIControlEventTouchDragEnter

指拖动动作中,从控件边界外到内时产生的事件。

6、UIControlEventTouchDragExit

指拖动动作中,从控件边界内到外时产生的事件。

7、UIControlEventTouchUpInside

指鼠标在控件范围内抬起,前提先得按下,即UIControlEventTouchDown或UIControlEventTouchDownRepeat事件。

8、UIControlEventTouchUpOutside

指鼠标在控件边界范围外抬起,前提先得按下,然后拖动到控件外,即 

UIControlEventTouchDown -> 

UIControlEventTouchDragInside(n 个) -> 

UIControlEventTouchDragExit -> 

UIControlEventTouchDragOutside(n 个) 

时间序列,再然后就是抬起鼠标,产生UIControlEventTouchUpOutside事件。


系列:iOS开发-从扩展UIButton到自定义控件

系列:iOS开发-从扩展UIButton到自定义控件我们在做iOS开发的时候,往往要制作一些跟系统控件不一样的自定义控件, 比如我们会定义一个图片在上面,文字在下面的按钮, 比如我们会定义一个复杂的...
  • spicyShrimp
  • spicyShrimp
  • 2017年06月21日 18:09
  • 743

UI控件笔记(十六):UI之Uibutton,UIview,UIlbel等初始化的封装

一、MyUIClass.h #import @interface MyUIClass : NSObject +(UIView *)makeUIViewWithFram:(CGRe...
  • wzc10101415
  • wzc10101415
  • 2016年05月17日 10:51
  • 823

CocoStudio UIButton setPressedActionEnabled 子控件缩放解决方案

为什么子控件不跟着缩放 UIButton是个组合的控件,其主体是个Widget,里面有如下几个子控件: Scale9Sprite* _buttonNormalRenderer;...
  • aizhiqiang2
  • aizhiqiang2
  • 2017年06月02日 16:29
  • 407

由UIImageView中的UIButton不响应事件引发的

今天写了这么一小段测试代码,如下: CGRect imageRect = (CGRect){100, 100, 100, 100}; UIImageView *imageView...
  • jasonblog
  • jasonblog
  • 2013年02月06日 15:15
  • 13208

UILabel,UIButton等文字显示的控件大小的自适应

NSString *demoStr=@"需要显示的字符串";//控件显示的字符串 CGSize maxSize=CGSizeMake(MAXFLOAT, MAXFLOAT);//定义一个限制控...
  • appleCSDN_wjd
  • appleCSDN_wjd
  • 2016年01月15日 14:41
  • 1222

ios中UI控件的继承关系

参考: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIButton_Class/UIBu...
  • u011303663
  • u011303663
  • 2015年09月14日 14:24
  • 1700

UIButton内部布局

UIButton内部文本和图片的布局是我们日常代码中,不可缺少的部分,按钮默认左边图片右边文本,那要实现左边文本,右边图片,我们该怎么解决呢,上面图片,下面文本又该怎么办呢 其实很简单,今天总结...
  • zcvbnh
  • zcvbnh
  • 2016年09月09日 15:53
  • 336

UIButton无法响应点击事件问题

问题描述: 当设置UIButton的backgroundColor = [UIColor clearColor]时,如果此时按钮上仅有一张图片并且按钮图片较小,如下图 ‘ 此时点击按...
  • tuyuanxiu
  • tuyuanxiu
  • 2016年04月21日 18:34
  • 212

使UIButton的子view不影响button的点击事件

UIButton* btn = [UIButton buttonWithType:UIButtonTypeCustom]; UIView* subView = [[UIView alloc] init...
  • gaoyp
  • gaoyp
  • 2013年12月20日 10:36
  • 1599

如何根据(id)sender获取UIButton的信息

-(IBAction) buttonClick:(id)sender   //sender参数,表示接受哪个按钮消息 {     UIButton *button = (UIButton ...
  • qq469236803
  • qq469236803
  • 2012年08月28日 14:33
  • 3528
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UIButton控件
举报原因:
原因补充:

(最多只允许输入30个字)