首页 > 代码库 > 第3课、UIButton的常用属性

第3课、UIButton的常用属性

 

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

 

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

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

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

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

 

   提示:

    1) 在OC开发中,实例化任何类型的非自定义对象,都请首先尝试一下是否存在快速定义方法。

      如果存在快速定义方法,就尽量不要使用init之类的方法实例化对象!

 

 

 

二、 按钮类型

  1.  UIButtonTypeCustom        按钮的内容需要自定义

  2.  UIButtonTypeRoundedRect      圆角矩形按钮
  3.  UIButtonTypeDetailDisclosure   显示明细按钮
  4.  UIButtonTypeInfoLight      亮色信息按钮,用于深色背景
  5.  UIButtonTypeInfoDark      深色信息按钮,用户浅色背景
  6.  UIButtonTypeContactAdd     添加按钮
 
  说明:
    1)前两种类型的按钮最常用
    2)后四种类型的按钮设计,是为了保持用户统一的使用习惯
 
 
 
 
三、按钮文字
  正常状态下按钮文字  [button setTitle:@"按钮" forState:UIControlStateNormal];
  长按按钮状态下的按钮文字  [button setTitle:@"有人摸我" forState:UIControlStateHighlighted];
 
  注意
    1)  在设置按钮文字时,需要指定文字对应的按钮状态
 
 
 
 
四、 按钮文字颜色

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

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

 
  注意
    1)在设置按钮文字颜色时,同样需要指定颜色应用的按钮状态
 
 
 
 
五、按钮背景颜色
   [button setBackgroundColor:[UIColor orangeColor]];
 
   注意
     1)在设置背景颜色时,按钮需要是自定义类型
 
 
六、设置图片及背景图像

   加载图像  UIImage *image = [UIImage imageNamed:@"sub_black_add.png"];

  设置按钮图像  [button setImage:image forState:UIControlStateNormal];

  设置按钮背景图像  [button setBackgroundImage:image forState:UIControlStateNormal];

 
  注意
    1)背景图像会根据按钮的尺寸拉伸
    2)按钮图像会居中显示在按钮中央位置
    3)如果同时设置了按钮的图像和文字
      •按钮区域足够大,会并列显示图像和文字
      •如果区域不够大,优先显示图像
 
 
 
////  ViewController.m//  第3课、UIButton的常用属性////  Created by iCodePhone on 14-7-29.////#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];        //定义一个按钮的实例    UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];        //位置    [button setFrame:CGRectMake(50, 50, 200, 40)];    //文字(正常OR选中)    [button setTitle:@"点击按钮(正常)" forState:UIControlStateNormal];    [button setTitle:@"被点击喽(选中)" forState:UIControlStateHighlighted];            //设置文字颜色    [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];    [button setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted];            //背景颜色(如果要设置按钮的背景颜色,需要使用自定义类型的按钮,即:UIButtonTypeCustom)    //[button setBackgroundColor:[UIColor orangeColor]];        //将按钮的监听(监听方法,只有一个参数。)    //@selector选择器,告诉系统,来找这个方法,来加载到内存中。---(OC的一大特点!)    [button addTarget:self action:@selector(onClickBtn:) forControlEvents:UIControlEventTouchUpInside];        //设置按钮的背景图,会根据按钮的尺寸拉伸    [button setBackgroundImage:[UIImage imageNamed:@"btn001"] forState:UIControlStateNormal];        //添加到视图    [self.view addSubview:button];}/*    有C#,JAVA基础的,可能会这么写:button.titleLabel.text         在OC中,中括号,表示消息。    在OC中,没有函数机制,它是消息机制。    它会告诉系统,我需要这么一个消息。系统会在内存中找,这个方法有没有被加载在内存里面,        如果,这个方法不在内存里面,它把这个方法加载到内存里面,来执行。 *//*    1. 在使用连线的时候,这个方法的返回值是IBAction。        所谓IBAction,就是在头文件,可以连线的void。     2. 在使用连线的时候,方法有一个参数。        可不写参数 */- (void) onClickBtn:(UIButton *)sender{    NSLog(@"sender.titleLabel.text==%@", sender.titleLabel.text);}@end

 

 
 
 
      
 
                   ---  iCode , 爱生活。