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. MySQL用户授权 和 bin-log日志 详解和实战

    看了上一篇博文的发布时间,到目前已经有三个月没更新博文了.这三个月经历了很多事情,包括工作.生活和感情等等.由于个人发展的原因,这个月准备换工作啦.在这段时间,我会把Web大型项目中所接触到的技术都总 ...

  2. MVC框架定义

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

  3. [flask]flask_login模块,session及其他

    读flask源码的时候,有一点一直到现在都没有一个清晰的概念,比如四个全局变量g,current_app,session,request是怎么做到的 按照查到的资料里面的说法,为了不至于每次都主动调用 ...

  4. Web应用扫描工具Wapiti

    Web应用扫描工具Wapiti   Wapiti是Kali Linux预置的一款Web应用扫描工具.该工具执行黑盒扫描,用户只需要输入要扫描的网址即可.该工具可以探测文件包含.数据库注入.XSS.CR ...

  5. 使用Python发送HTML格式的邮件(收到的邮件有发送方才是正解)

    发送html格式的和普通文本格式差不多,只是MIMEText(content,"html","utf-8"))与MIMEText(content,"p ...

  6. Redis 服务器命令

    1.BGREWRITEAOF 异步执行一个 AOF(AppendOnly File) 文件重写操作 2.BGSAVE 在后台异步保存当前数据库的数据到磁盘 3.CLIENT KILL [ip:port ...

  7. C# 序列化简单格式XML

    问师傅反序列化和序列化到底是什么, 然后师傅鄙视一下我的智商,让我做个反序列化解析XML. 一边听着师傅在旁边跟女朋友打电话收到暴击伤害,一边写,搞了一个半小时. XML文件: <?xml ve ...

  8. Tomcat CVE-2017-12615 远程上传漏洞复现

    漏洞名称:CVE-2017-12615-远程代码执行漏洞 CVE-2017-12615:远程代码执行漏洞 当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 r ...

  9. 【JavaScript代码实现三】JS对象的深度克隆

    function clone(Obj) { var buf; if (Obj instanceof Array) { buf = []; // 创建一个空的数组 var i = Obj.length; ...

  10. Codeforces Round #293 (Div. 2) B. Tanya and Postcard 水题

    B. Tanya and Postcard time limit per test 2 seconds memory limit per test 256 megabytes input standa ...