码迷,mamicode.com
首页 > 其他好文 > 详细

0821基础控件(UIButton常用属性)

时间:2014-05-29 19:11:52      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

一、可以通过代码的方式创建UIButton

1、通用实例化对象方法:

UIButton *button = [[UIButton alloc] initWithFrame:rect];

2、快速实例化对象方法:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

提示:

在OC开发中,实例化任何类型的非自定义对象,都请首先尝试一下是否存在快速定义方法。如果存在快速定义方法,就尽量不要使用init之类的方法实例化对象!

 

二、UIButton的常用属性1——按钮类型

1、 UIButtonTypeCustom

按钮的内容需要自定义

2、UIButtonTypeRoundedRect

圆角矩形按钮

3、UIButtonTypeDetailDisclosure

显示明细按钮

4、UIButtonTypeInfoLight

亮色信息按钮,用于深色背景

5、UIButtonTypeInfoDark

深色信息按钮,用户浅色背景

6、UIButtonTypeContactAdd

添加按钮

说明:

–前两种类型的按钮最常用

后四种类型的按钮设计,是为了保持用户统一的使用习惯

 

三、UIButton的常用属性2——按钮文字

1、正常状态下按钮文字

[button setTitle:@"按钮" forState:UIControlStateNormal];

2、长按按钮状态下的按钮文字

[button setTitle:@"有人摸我" forState:UIControlStateHighlighted];

注意

–在设置按钮文字时,需要指定文字对应的按钮状态

 

四、UIButton的常用属性3——按钮文字颜色

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];

注意:

–在设置按钮文字颜色时,同样需要指定颜色应用的按钮状态

 

五、UIButton的常用属性4——按钮背景颜色

[button setBackgroundColor:[UIColor orangeColor]];

注意:

–在设置背景颜色时,按钮需要是自定义类型

 

六、UIButton的常用属性5——设置图片及背景图像

// 加载图像

UIImage *image = [UIImage imageNamed:@"sub_black_add.png"];

// 设置按钮图像

[button setImage:image forState:UIControlStateNormal];

// 设置按钮背景图像

[button setBackgroundImage:image forState:UIControlStateNormal];

注意:

–背景图像会根据按钮的尺寸拉伸

–按钮图像会居中显示在按钮中央位置

–如果同时设置了按钮的图像和文字

按钮区域足够大,会并列显示图像和文字

如果区域不够大,优先显示图像

 

七、设置UIButton的监听器

// 设置按钮点击监听

[button addTarget:self action:@selector(tapButton) forControlEvents:UIControlEventTouchUpInside];

注意:

–调用自定义方法需要使用@selector指令

–注意void和IBAction的区别

–按钮事件最多只可以带一个参数

 

代码段1:

bubuko.com,布布扣
//
//  ViewController.m
//  通过代码创建按钮
//
//  Created by apple on 13-8-21.
//  Copyright (c) 2013年 apple. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

// 按钮点击执行方法
// 在StoryBoard连线的时候,这个方法的返回值是IBAction,所谓IBAction就是在头文件里面可以连线的void
- (void)tapButton:(UIButton *)sender
{
    NSLog(@"我被摸了 %@", [sender.titleLabel text]);
}

- (void)viewDidLoad
{
    // 在viewDidLoad方法中,必须实现super方法,下一行代码千万别删了!!
    [super viewDidLoad];
    
    // 定义一个按钮的实例
    // 在oc中,所有你不熟悉的对象,实例化的时候,先敲一下它的名字
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    
    // 定义一下按钮的位置
    [button setFrame:CGRectMake(110.0, 220.0, 100.0, 40.0)];
    
    // 定义按钮正常状态下的文字,UIControlStateNormal
    [button setTitle:@"别摸我" forState:UIControlStateNormal];
    // 定义按钮按住状态下的文字,UIControlStateHighlighted
    [button setTitle:@"就摸你" forState:UIControlStateHighlighted];

    // 设置按钮正常状态下文字的颜色
    [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [button setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted];
    
    // 设置按钮的背景颜色,如果要设置按钮的背景颜色,需要使用自定义类型的按钮
    [button setBackgroundColor:[UIColor orangeColor]];
    
    // 设置按钮的监听,也就是点击按钮的时候去执行的方法,监听方法只能接UIButton这一个参数
    [button addTarget:self action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];
    
    // 设置按钮的图像
//    UIImage *image = [UIImage imageNamed:@"sub_black_add.png"];
//    [button setImage:image forState:UIControlStateNormal];
//    
//    UIImage *imageH = [UIImage imageNamed:@"sub_blue_add.png"];
//    [button setImage:imageH forState:UIControlStateHighlighted];
    
    // 设置按钮的背景图像,会根据按钮的尺寸拉伸
    UIImage *imageBack = [UIImage imageNamed:@"sub_black_add.png"];
    [button setBackgroundImage:imageBack forState:UIControlStateNormal];
    
    // 将按钮添加到视图
    [self.view addSubview:button];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
bubuko.com,布布扣

0821基础控件(UIButton常用属性),布布扣,bubuko.com

0821基础控件(UIButton常用属性)

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/limyronchin/p/3758418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!