UIkit框架之UIbutton的使用
1.UIbutton的继承关系:UIcontroller:UIview:UIresponder:NSObject;
2.添加按钮的步骤:
(1)创建按钮的时候首先设置类型
(2)添加标题或者图片,设置大小来适合按钮内的内容
(3)为这个按钮链接一个或者多个动作方法
(4)在界面设置按钮的布局来控制它的大小,位置
(5)提供有用的信息和局部字符串
3.按钮的类型有:
(1)UIButtonTypeCustom(没有按钮类型),
(2) UIButtonTypeSystem(圆角矩形),
(3)UIButtonTypeDetailDisclosure(详细符号矩形),
(4)UIButtonTypeInfoLight(背景高光),
(5)UIButtonTypeInfoDark(背景低暗),
(6)UIButtonTypeContactAdd(加号按钮),
(7)UIButtonTypeRoundedRect(圆角矩形,已经使用system的类型来代替)。
4.可以为创建的按钮设置your button’s title (titleEdgeInsets), image (imageEdgeInsets), and both the title and image together (contentEdgeInsets)的属性;但是要注意,设置为info、contact、disclosure类型状态的不应该重新设置这些属性。
5.按钮的状态有:
6.按钮只读的属性:currentTitle、currentAttributedTitle\currentTitleColor/imageView
7.可以通过以下属性来设置按钮:
(1)button.titleLabel.font = [UIFont systemFontOfSize:20]; //设置标题文字的大小
(2)button.frame = CGRectMake(100, 100, 120, 40); //设置按钮的位置和大小
(3)[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted]; //设置题目的颜色,但需要在一定的高光状态下才可以
(4)[button setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal]; //设置题目的阴影颜色,在UIControlStateNormal的状态下才可以进行显示
(5)[button setTitle:@"button" forState:UIControlStateNormal]; //设置按钮的标题,在正常的状态下就可以显示这个标题
(6)button setAttributedTitle:setAttributeString forState:UIControlStateDisabled];//设置在不可用的状态下的标题属性
(7)[button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal]; //设置在正常状态下标题的颜色
(8)button.reversesTitleShadowWhenHighlighted = YES; //当高亮的时候阴影就会从雕刻形式转变成浮雕的形式
(9)button.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail; //当添加的字符超过label行数设定的值时,后面添加的字符就会被截断,这里默认是label只有一行字符
(10)[button setImage:[UIImage imageNamed:@"DF"] forState:UIControlStateHighlighted];//在高亮的时候显示该图片
(11)button.adjustsImageWhenHighlighted = YES; //当按钮高亮的时候按钮上的图片也会变得高亮,,点击后应该就是高亮的状态
(12)button.adjustsImageWhenDisabled = YES; //当按钮变成灰色的时候显示的图片也会变暗
(13)button.showsTouchWhenHighlighted = YES; //当按钮被点击的时候按钮就发光变成高亮,但是当按钮有图片和行为的时候就不会有这个功能,默认是no
(14)[button setBackgroundImage:[UIImage imageNamed:@"Emp"] forState:UIControlStateNormal];//设置在正常状态下的背景图片
(15)button.contentEdgeInsets = UIEdgeInsetsMake(20, 20, 20, 20);//修改按钮内的内容到边界的距离,顶,左,底,右
(16)button.imageEdgeInsets = UIEdgeInsetsMake(100, 20, 50, 20);//修改按钮的图片到边界的距离,注意这不是背景图片
(17)button.titleEdgeInsets = UIEdgeInsetsMake(30, 20, 20, 20); //修改标题到按钮边界的距离
(18)button.imageView.exclusiveTouch = YES; //不管按钮显不显示imageview会返回一个布尔值,但system类型的返回的是nil
8.可以通过以下的属性获取按钮的信息
(1)NSString *titlestring = button.currentTitle; //获取按钮当前的标题
(2)NSString *statementString = [button titleForState:UIControlStateNormal];//获取在一定状态下的标题
(3)NSAttributedString *attributeString = [button attributedTitleForState:UIControlStateDisabled];//获取在不可用状态下的标题属性
(4) UIColor *titleColor = [button titleColorForState:UIControlStateNormal]; //获取在正常状态下标题的颜色
(5)UIImage *backgroundImage = [button backgroundImageForState:UIControlStateNormal];//获取在正常状态下的背景图片
(6)UIImage *statementImage = [button imageForState:UIControlStateHighlighted];//获取在高亮状态下的图片
(7)UIButtonType buttonType = button.buttonType; //获取按钮的类型,值的类型是NSInteger
(8)UIColor *currentColor = button.currentTitleColor; //获取当前的标题
(9) UIColor *currentTitleShadowTitle = button.currentTitleShadowColor; //获取当前标题阴影的颜色
(10)NSString *titleLabelString =button.titleLabel.text; //获取按钮标题标签的内容,简单点说就是标题
(11)NSAttributedString *currentAttributeTitle = button.currentAttributedTitle; //获取当前的属性标题
(12)UIImage *currentBackgroundImage = button.currentBackgroundImage; //获取当前的背景图片
(13)UIImage *currentImage = button.currentImage; //获取当期前的图片
(14)button.bounds = [button backgroundRectForBounds:rect]; //返回输入的参数的值
(15)CGRect contentRectangleBounds = [button contentRectForBounds:button.bounds]; //返回当前按钮内容矩形的位置和大小
(16)CGRect titleRect = [button titleRectForContentRect:button.bounds]; //返回按钮里面标题矩形的位置和大小
(17)CGRect imageRectangle = [button imageRectForContentRect:button.bounds]; //返回按钮内图片矩形的位置和大小
UIkit框架之UIbutton的使用的更多相关文章
- UIKit 框架之Bar、Controller
UIKit框架中有各种Bar,UITabBar.UINavigationBar.UIToolbar.Bar对应的就有一些Item,tabBarItem.navigationItem.toolbarIt ...
- UIKit框架使用总结--看看你掌握了多少
一.经常使用的,基本就是每次项目迭代都需要使用的 UIView.UILabel.UIImage.UIColor.UIFont.UIImageView.UITextField.UIButton. UIS ...
- Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)
原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...
- UIKit框架
在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...
- iOS学习32之UIKit框架-可视化编程-XIB
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
- 基础框架Fundation和UIkit框架的定义和使用
Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...
- iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。
转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...
- iOS开发UIKit框架-可视化编程-XIB
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
- 79、iOS 的Cocoa框架、Foundation框架以及UIKit框架
Cocoa框架是iOS应用程序的基础 1. Cocoa是什么? Cocoa是 OS X和ios 操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发 ...
随机推荐
- js(引用类型和setTimeout scope)
题目是群中小伙伴出的. var a = [1,2,3]; c= a //todo 限制条件 c 不能出现在 = 左边 console.log(a) console.log(c) console.log ...
- Compound Interest Calculator1.0
Compound Interest Calculator1.0 客户说:帮我开发一个复利计算软件. 计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按 ...
- Qt之QSS(白色靓丽)
简述 Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples. 白色靓丽 - 一款漂亮的QSS风格. 你可以直接使用,也可以随意转载,但请务必保 ...
- WMI执行远程文件(RPC)
通过wmi在远程机上执行命令(wmi:windows management interface 可以通过一个公共的接口访问不同操作系统(windows系统)的构成单元,利用它可以高效的管理远程和本地的 ...
- 详细解读Jquery各Ajax函数
$.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callba ...
- PowerDesigner中导出设计说明文档
点击下图的新建按钮,新建一个导出内容的模板 模板设计界面分为2栏,左边是可选的模板内容,右侧是模板,双击左侧条目会添加到右侧,最后生成的文件中就有此项内容. 已经添加到右侧的内容可以编辑,双击右侧的条 ...
- 必须关注的25位知名JavaScript开发者
必须关注的25位知名JavaScript开发者 发表于2012-08-07 17:30| 16215次阅读| 来源Crossrider Blog| 46 条评论| 作者Crossrider Blog ...
- BZOJ1579 [Usaco2009 Feb]Revamping Trails 道路升级
各种神作不解释QAQQQ 先是写了个作死的spfa本机过了交上去T了... 然后不想写Dijkstra各种自暴自弃... 最后改了一下步骤加了个SLF过了... 首先一个trivial的想法是$dis ...
- windows下捕获dump之守护进程
一两个月前为产品写了一个独立的exe,由于产品使用的捕获dump是一个现成的进程外exe,如果以资源的方式集成它容易出现安全警告,由于时间关系没有寻求新的解决方法,还是遵循旧方案,不捕获dump. 最 ...
- 查询使用NoLock
当我们在操作数据库的时候,无论是查询还是修改数据库的操作我们都习惯使用using(var db=new XXXDB()){},但是如果仅仅是做查询,最好是使用NoLock,因为NoLock使用的是共享 ...