iOS:UIButton按钮的详解
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 //为框架预留的
四、设置按钮形状类型
- self.loginBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- buttonWithType: 定义button按钮的外形
- 六种定义button类型: 下面有图解
- UIButtonTypeCustom = 0, 无类型
- UIButtonTypeRoundedRect, 四个角是圆弧 型的
- UIButtonTypeDetailDisclosure,
- UIButtonTypeInfoLight,
- UIButtonTypeInfoDark,
- 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按钮的详解的更多相关文章
- [转]iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
转载地址:http://blog.csdn.net/totogo2010/article/details/7682433 iOS学习之UINavigationController详解与使用(一)添加U ...
- iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem是上篇,我们接着讲UINavigationController的重要作用,页面的管理和切换. ...
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...
- IOS—UITextFiled控件详解
IOS—UITextFiled控件详解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGR ...
- IOS中UITableViewCell使用详解
IOS中UITableViewCell使用详解 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(N ...
- iOS 单元测试之XCTest详解(一)
iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...
- [转]iOS学习之UINavigationController详解与使用(三)ToolBar
转载地址:http://blog.csdn.net/totogo2010/article/details/7682641 iOS学习之UINavigationController详解与使用(二)页面切 ...
- IOS 友盟使用详解
IOS 友盟使用详解 这篇博客将会详细介绍友盟的使用,希望对博友们有所帮助. 首先我们在浏览器上搜索友盟. 在这里我们选择官网这个,进去友盟官网后我们按照下图进行选择. 接下来选择如下图 Next 这 ...
- iOS原生地图开发详解
在上一篇博客中:http://my.oschina.net/u/2340880/blog/414760.对iOS中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博 ...
随机推荐
- python之web框架(1):完成静态页面web服务器
python的web框架(1) 1.首先写一个最简单的web服务器,只能给客户回应一个固定的hello world的页面. from socket import * from multiprocess ...
- 【定时任务】Timer
Java原生api Timer类就可以实现简单的定时任务.下面将简单介绍一下Timer. 一.使用 Timer 实现定时任务 具体代码如下. 可以看到我们主要是分三步进行的 1.new Timer() ...
- CSUOJ 1008 Horcrux
Description A Horcrux is an object in which a Dark wizard or witch has hidden a fragment of his or h ...
- Json格式String类型字符串转为Map工具类
package agriculture_implement.util; import com.google.gson.Gson; import com.google.gson.JsonSyntaxEx ...
- http远程调用原生get、post模板
一.get方法 package lq.httpclient.method; import java.io.BufferedReader; import java.io.IOException; imp ...
- [POI2017]Sabotaż
[POI2017]Sabotaż 题目大意: 一棵\(n(n\le5\times10^5)\)个结点的树,初始时有一个未知的黑点,其余全为白点.对于一个点,如果其子树中黑点所占比例超过\(x\),则这 ...
- 【洛谷】1494:[国家集训队]小Z的袜子【莫队】
P1494 [国家集训队]小Z的袜子 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… ...
- Windows下C语言调用dll动态链接库
dll是windows下的动态链接库文件,下面记录一下在windows下如何调用C语言开发的dll动态链接库. 1.dll动态链接库的源代码 hello_dll.c #include "st ...
- windows控制台程序——关于UNICODE字符的总结(转)
前言:从Windows NT/2000开如,Windows系统已经是一个标准的UNICODE系统,系统内部所有字符串存储及操作均使用UNICODE编码.因此Win32 API都是UNICODE版本的, ...
- 白光LED驱动方案的选择 TPS61043
所有专为驱动白光LED而设计的IC都提供恒定电流夕其中尽大多数是基于电感或电荷泵的解决方案9这两种解决方案各有其优缺点. 电荷泵解决方案也称为开关电容器解决方案,利用分离电容器将电源从输进端传送至输出 ...