iOS控件之UIButton

原创 2016年06月01日 12:38:57

按钮控件  UIButton  


一,作用:响应用户的点击事件

 二,常用属性

// 设置指定状态对应的标题文本
- (void)setTitle:(NSString *)title forState:(UIControlState)state;


// 设置指定状态对应的标题颜色
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;


// 设置指定状态对应的显示图片
- (void)setImage:(UIImage *)image forState:(UIControlState)state;


// 设置指定状态对应的背景图片
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;


// 为按钮添加事件
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;




三,UIButton的状态

UIControlStateNormal  // 正常状态


UIControlStateHighlighted// 高亮状态


UIControlStateDisabled// 禁用状态


UIControlStateSelected// 选中状态

四,UIButtonDemo

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    self.window.backgroundColor = [UIColor whiteColor];
    
    // 构造方法
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    /*
    // 禁用按钮
    button.enabled = NO;
    // 按钮选中
    button.selected = YES;
    // 设置标题,状态正常
    [button setTitle:@"normal" forState:UIControlStateNormal];
    // 设置标题,状态高亮
    [button setTitle:@"highlighted" forState:UIControlStateHighlighted];
    // 设置标题,状态禁用
    [button setTitle:@"disabled" forState:UIControlStateDisabled];
    // 设置标题,状态选中
    [button setTitle:@"selected" forState:UIControlStateSelected];
    // 设置title的颜色
    [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    */
     
    // 设置背景图片
    [button setBackgroundImage:[UIImage imageNamed:@"love_normal"] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:@"love_select"] forState:UIControlStateHighlighted];
    [button setBackgroundImage:[UIImage imageNamed:@"love_select"] forState:UIControlStateSelected];
    
    // 设置图片
//    [button setImage:[UIImage imageNamed:@"love_normal"] forState:UIControlStateNormal];
//    [button setImage:[UIImage imageNamed:@"love_select"] forState:UIControlStateSelected];
    
    // 用户在控件内按下抬起时
    [button addTarget:self action:@selector(touchUpInside:) forControlEvents:UIControlEventTouchUpInside];
    // 用户按下时
    [button addTarget:self action:@selector(down) forControlEvents:UIControlEventTouchDown];
    // 用户按下时
    [button addTarget:self action:@selector(outside) forControlEvents:UIControlEventTouchUpOutside];
    // 记录用户多次按下
    [button addTarget:self action:@selector(repeat) forControlEvents:UIControlEventTouchDownRepeat];
    // 用户由内向外
    [button addTarget:self action:@selector(dragExit) forControlEvents:UIControlEventTouchDragExit];
    // 用户由外向内
    [button addTarget:self action:@selector(dragEnter) forControlEvents:UIControlEventTouchDragEnter];
    // 事件的取消 如用户刚点击按钮 来电话了
    [button addTarget:self action:@selector(cancel) forControlEvents:UIControlEventTouchCancel];
    
    // 设置frame,与按钮的类型有关
    button.frame = CGRectMake(90, 100, 41, 30);
    [self.window addSubview:button];
    
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)touchUpInside:(UIButton *)button
{
    if (button.selected) {
        button.selected = NO;
    }else {
        button.selected = YES;
    }
    NSLog(@"touchUpInside");
}

- (void)down
{
    NSLog(@"down");
}

- (void)outside
{
    NSLog(@"outside");
}

- (void)repeat
{
    NSLog(@"repeat");
}

- (void)dragExit
{
    NSLog(@"dragExit");
}

- (void)dragEnter
{
    NSLog(@"dragEnter");
}

- (void)cancel
{
    NSLog(@"cancel");
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

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

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

ios中UI控件的继承关系

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

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

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

iOS 自定义UIButton

UIButton的默认布局是:title在右,image在左; 很多时候我们需要的是title在左边,或者title在下面,这时就需要调整UIButton的TitleLabel和ImageView的...
  • wanglei0918
  • wanglei0918
  • 2016年11月22日 15:27
  • 373

iOS给控件画虚线边框

CGFloat viewWidth = 200; CGFloat viewHeight = 50; UIButton *view = [[UIButtonalloc]initWithF...
  • scodefarmery
  • scodefarmery
  • 2016年10月20日 14:15
  • 1188

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

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

iOS UIButton按钮颜色渐变动画

self.rotateButton.imageView.alpha = 0.2; NSLog(@" rotateButtonImgChange "); [UIView ani...
  • elsonpeng
  • elsonpeng
  • 2016年10月12日 14:38
  • 2658

IOS开发总结之UIButton常用属性和方法

UIControlStateNormal // 正常状态 UIControlStateHighlighted // 高亮状态 UIControlStateDisa...
  • sunnyboy9
  • sunnyboy9
  • 2016年04月28日 21:41
  • 1213

ios 巧用UIButton的UIControlStateSelected属性

一般可以巧用UIBUtton的UIControlStateSelected属性,来设置UIButton的选中背景图片。 - (UIButton *)normalButton { if (!_...
  • robinson_911
  • robinson_911
  • 2017年06月24日 14:32
  • 506
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS控件之UIButton
举报原因:
原因补充:

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