UIButton的详细介绍:

一、按钮具有的属性:

@property(nonatomic,readonly) UIButtonType buttonType;  //按钮形状类型

@property(nonatomic,readonly,retain) NSString *currentTitle;    //按钮当前文字

@property(nonatomic,readonly,retain) UIColor  *currentTitleColor;     //按钮当前文字颜色

@property(nonatomic,readonly,retain) UIColor  *currentTitleShadowColor;  //按钮文字当前阴影颜色

@property(nonatomic,readonly,retain) UIImage  *currentImage;             //按钮当前前景图片

@property(nonatomic,readonly,retain) UIImage  *currentBackgroundImage;    //按钮当前背景图片

@property(nonatomic,readonly,retain) NSAttributedString *currentAttributedTitle //按钮文字当前属性

@property(nonatomic,readonly,retain) UILabel     *titleLabel    //按钮标签

@property(nonatomic,readonly,retain) UIImageView *imageView  //按钮视图

@property(nonatomic) UIControlContentVerticalAlignment contentVerticalAlignment;    //按钮垂直放置方式

@property(nonatomic) UIControlContentHorizontalAlignment contentHorizontalAlignment; //按钮水平放置方式

@property(nonatomic,readonly) UIControlState  //按钮状态类型

二、设置按钮的属性值

- (void)setTitle:(NSString *)title forState:(UIControlState)state;   //设置按钮文字内容

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state  //设置按钮文字颜色

- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state  //设置按钮文字阴影颜色

- (void)setImage:(UIImage *)image forState:(UIControlState)state;   //设置按钮前景图片

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state  //设置按钮背景图片

- (void)setAttributedTitle:(NSAttributedString *)title forState:(UIControlState)state  //设置按钮文字属性

三、按钮的状态类型

按钮类型UIControlState:

UIControlStateNormal          //正常类型

UIControlStateHighlighted    //高亮类型

UIControlStateDisabled       //禁用类型

UIControlStateSelected       //选中类型

UIControlStateApplication   //当应用程序标识使用时

UIControlStateReserved      //为框架预留的

四、设置按钮形状类型

  1. self.loginBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  2. buttonWithType:  定义button按钮的外形
  3. 六种定义button类型: 下面有图解
  4. UIButtonTypeCustom = 0,    无类型
  5. UIButtonTypeRoundedRect,    四个角是圆弧   型的
  6. UIButtonTypeDetailDisclosure,
  7. UIButtonTypeInfoLight,
  8. UIButtonTypeInfoDark,
  9. UIButtonTypeContactAdd,

或者:

[Btn.layer setMasksToBounds:YES];
    [Btn.layer setCornerRadius:8.0]; //设置矩圆角半径
    [Btn.layer setBorderWidth:1.0];   //边框宽度
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGColorRef colorref = CGColorCreate(colorSpace,(CGFloat[]){ 1, 0, 0, 1 });
    [Btn.layer setBorderColor:colorref];//边框颜色

五、获取按钮的属性

- (NSString *)titleForState:(UIControlState)state;      //获取按钮文字

- (UIColor *)titleColorForState:(UIControlState)state;  //获取按钮文字颜色

- (UIColor *)titleShadowColorForState:(UIControlState)state; //获取按钮文字阴影颜色

- (UIImage *)imageForState:(UIControlState)state; //获取按钮前景图片

- (UIImage *)backgroundImageForState:(UIControlState)state; //获取按钮背景图片

- (NSAttributedString *)attributedTitleForState:(UIControlState)state; //获取按钮文字属性

六、按钮文字放置方式

垂直放置:

UIControlContentVerticalAlignmentCenter   //居中

UIControlContentVerticalAlignmentTop       //置顶

UIControlContentVerticalAlignmentBottom   //置底

UIControlContentVerticalAlignmentFill        //填充

水平放置:

UIControlContentHorizontalAlignmentCenter  //居中

UIControlContentHorizontalAlignmentLeft     //居左

UIControlContentHorizontalAlignmentRight   //居右

UIControlContentHorizontalAlignmentFill      //填充

说明:

(1) 由于按钮有状态类型之分,所以,在给按钮添加文字时,使用button.TitleLabel.Text = @“按钮”这种赋值方式是无效的,在视图中不会显示出来,应该使用[button setTitle:(NSString *)title forState:(UIControlState)

state]这种方式才是有效地。同样设置文字的颜色也是如此:

设置UIButton上字体的颜色设置UIButton上字体的颜色,不是用:

[btn.titleLabel setTextColor:[UIColorblackColor]];

btn.titleLabel.textColor=[UIColor redColor];

而是用:

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

(2)获取按钮的文字,应该使用[button currentTitle],如果使用button.titleLabel.Text,其结果并不是你设置的文字内容。同样获取文字的颜色也是如此.[button currentTitleColor]

(3)设置按钮上的字体的大小

[button setFont: [UIFont systemFontSize: 14.0]]; //这种可以用来设置字体的大小,但是可能会在     将来的SDK版本中去除改方法

button.titleLabel.font = [UIFont fontWithName:(NSString*)fontName size:14.0]; //应该使用

或者

button.TitleLabel.font = [UIFont systemFontOfSize: 14.0];    //应该使用

(4) 有些时候我们想让UIButton的title居左对齐

button.textLabel.textAlignment = UITextAlignmentLeft  //是没有作用的,我们需要设置

button.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft; //显示居左

但是问题又出来,文字会紧贴到做边框,我们可以设置使文字距离左边框保持10个像素的距离。

button.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);

iOS:UIButton按钮的详解的更多相关文章

  1. [转]iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

    转载地址:http://blog.csdn.net/totogo2010/article/details/7682433 iOS学习之UINavigationController详解与使用(一)添加U ...

  2. iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

    iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem是上篇,我们接着讲UINavigationController的重要作用,页面的管理和切换. ...

  3. iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

    http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...

  4. IOS—UITextFiled控件详解

    IOS—UITextFiled控件详解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGR ...

  5. IOS中UITableViewCell使用详解

    IOS中UITableViewCell使用详解 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(N ...

  6. iOS 单元测试之XCTest详解(一)

    iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...

  7. [转]iOS学习之UINavigationController详解与使用(三)ToolBar

    转载地址:http://blog.csdn.net/totogo2010/article/details/7682641 iOS学习之UINavigationController详解与使用(二)页面切 ...

  8. IOS 友盟使用详解

    IOS 友盟使用详解 这篇博客将会详细介绍友盟的使用,希望对博友们有所帮助. 首先我们在浏览器上搜索友盟. 在这里我们选择官网这个,进去友盟官网后我们按照下图进行选择. 接下来选择如下图 Next 这 ...

  9. iOS原生地图开发详解

    在上一篇博客中:http://my.oschina.net/u/2340880/blog/414760.对iOS中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博 ...

随机推荐

  1. Ionic实战七:Ionic 音乐以及社交页面

    Ionic 音乐以及社交页面,可以用于二次开发,也可以用于社交或者音乐app页面模板,但是不足的是图片没法预览.      

  2. JAVAEE——ssm综合练习:CRM系统(包含ssm整合)

    1 CRM项目外观   1. 开发环境 IDE: Eclipse Mars2 Jdk: 1.7 数据库: MySQL 2. 创建数据库 数据库sql文件位置如下图: 创建crm数据库,执行sql 效果 ...

  3. 获取类的属性并排除特定属性(getType().GetProperties())

    当获取一个类型(class)的所有属性时,想排除指定属性,该如何操作? 比如:EF中一个实体类型UserEntity,通过反射获取这个类的属性时,想排除这个为映射的字段ID 使用以下方法即可! Pro ...

  4. Mac 上自带TFTP Server 软件的使用

    搬瓦工搭建SS教程 1.TFTP协议 简单文件传输协议Trivial File Transfer Protocol (TFTP)是一个基于UDP协议的简单的.低开销的文件传输协议,允许客户端get或者 ...

  5. JMS异步消息机制

    企业消息系统 Java Message Service 是由 Sun Microsystems 开发的,它为 Java 程序提供一种访问 企业消息系统 的方法.在讨论 JMS 之前,我们分来析一下企业 ...

  6. [BZOJ4592][SHOI2015]脑洞治疗仪(线段树)

    线段树基础操作题,唯一需要思考下的是将区间的前k个0覆盖为1. 线段树上二分,先递归到左子树覆盖,回溯时返回还剩多少个0未被覆盖,在根据这个信息递归到右子树.注意特判k=0的情况. 要维护的信息有:区 ...

  7. BZOJ.1032.[JSOI2007]祖码(区间DP)

    题目链接 BZOJ 洛谷 AC代码: 区间DP,f[i][j]表示消掉i~j需要的最少珠子数. 先把相邻的相同颜色的珠子合并起来. 枚举方法一样,处理一下端点可以碰撞消除的情况就行. 当然合并会出现问 ...

  8. hdu 4857 逆向建图+拓扑排序 ***

    题意:糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只能排成一行.现在有n个人,从1标号到n.同时有一些奇怪的约束条件,每个都形如:a必须在b之前.同时,社会是不平等的,这些人有的穷有 ...

  9. 算法转AI平台工程师记录-0

    --- vim源码安装: 1. git clone https://github.com/vim/vim.git 2. cd vim && ./configure --prefix=x ...

  10. 【HDU】1693:Eat the Trees【插头DP】

    Eat the Trees Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...