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中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博 ...
随机推荐
- Django实战(14):让页面联动起来
上一节我们实现了一个”能看不能用“的购物车,现在我们来使用这个购物车. 首先是产品目录界面中的”加入购物车“链接,我们希望点击这个按钮后,在购物车中添加该产品(添加的规则是如果购物车中已经有该产品就增 ...
- docker 删除none镜像
Windows版本,参考官方地址:https://forums.docker.com/t/how-to-remove-none-images-after-building/7050 docker rm ...
- c++ 栈(顺序表)
栈可以用顺序表(数组)也可以用链表来储存内容,本文采用顺序表(数组)来保存内部元素.代码如下: 1 #include <iostream> 2 using namespace std; ...
- 洛谷P4623 [COCI2012-2013#6] BUREK [模拟]
题目传送门 BUREK 格式难调,题面就不放了. 分析: 一道比较有思维难度的模拟题. 首先我们可以想到,对于一个三角形,可以画出一个最小矩形使得这个三角形被完全包围,并且这个矩形的边平行于坐标轴(图 ...
- iuap
2017.12 用友今年着力点往云平台发展,是时候整理一下思路 第一:iuap 第二:Linux 第三:财务会计业务入门 第四:NC节点视频教程--财务模块 2019年3月4日 all in iuap ...
- CSUOJ 1973 给自己出题的小X DFS
Description 小X学习了dfs,为了练习搜索,开始给自己出题玩. 玩着玩着,一会把自己难住了,一会又被自己难倒了,真是有趣诶! 小X出的题: 现在有N个不同的正整数,求它们可以组成多少个这样 ...
- hdu-1540线段树刷题
title: hdu-1540线段树刷题 date: 2018-10-18 19:55:21 tags: acm 刷题 categories: ACM-线段树 概述 哇,,,这道线段树的题可以说是到目 ...
- Linux-CentOs7-svn安装及钩子配置
做个svn的教程 首先进入test目录下,新建一个svn目录,准备做svn测试cd /testmkdir svncd svn然后使用yum安装svn,这里就不使用编译安装了,这玩意只要能用就行,版本无 ...
- 减少TIME_WAIT连接状态
减少TIME_WAIT连接状态.网络上已经有不少相关的介绍,大多是建议: shell> sysctl net.ipv4.tcp_tw_reuse=1 shell> sysctl net.i ...
- linux驱动之一语点破天机
<const 关键字> 在嵌入式系开发中,const关键字就是“只读”的意思 <为什么要ARM需要进行C语言环境的初始化> 在汇编情况下,指令的跳转,保护现场需要保存的数据 ...