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中list和str互转
1.list转str 假设有一个名为test_list的list,转换后的str名为test_str 则转换方法: test_str = "".join(test_list) 例子 ...
- MVC、MVP和MVVM的异同
No1: Model一般用来保持程序的数据状态,比如数据存储.网络请求等 No2: Android开发中应用到MVC的地方:比如ListView与Adapter,如果把ListView看作View层, ...
- Wannafly挑战赛9 B - 数一数
链接:https://www.nowcoder.com/acm/contest/71/B来源:牛客网 题目描述 设s,t为两个字符串,定义f(s,t) = t的子串中,与s相等的串的个数.如f(&qu ...
- JQuery实现最字体的放大缩小
网页常常有对字体放大缩小的需求,我们不妨来看一下下面这段JQuery代码的实现. 假如在html页面代码中我们有这么一段代码: <p>啦啦啦啦啦啦啦啦啦啦</p> 那么JQue ...
- php操作mongodb or查询这样写!
$where['$or'] = [ ['id' => ['lt'=>0]], ['id2' => ['lt'=>1]] ]; 这个是查询 id>0 或者id2>1的 ...
- BigDecimal 两种方式
第一种: Double a=0.06; Double b=0.01; BigDecimal addend = BigDecimal.valueOf(a); BigDecimal augend = Bi ...
- keystone 认证深度研究分析
一.Keystone Token深度概述 Keystone作为OpenStack项目基础认证模块,目前支持的token类型分别是uuid.pkiz.pki.fernet. 首先,简要叙述一下这四种类型 ...
- Python 序列与映射的解包操作
解包就是把序列或映射中每个元素单独提取出来,序列解包的一种简单用法就是把首个或前几个元素与后面几个元素分别提取出来,例如: first, seconde, *rest = sequence 如果seq ...
- Django一些开发经验
总结一些 Django 开发的小经验.先说一些最最基础的吧. 使用 virtualenv 隔离开发环境 使用 pip 管理项目依赖,主要就是一个小技巧,使用 pip freeze > requi ...
- Loj10153 二叉苹果树
题目描述 有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点.这棵树共 NN 个节点,标号 11 至 NN,树根编号一定为 11. 我们用一根树枝两端连接的节点编号描述一根树枝的 ...