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.按钮只读的属性:currentTitlecurrentAttributedTitle\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的使用的更多相关文章

  1. UIKit 框架之Bar、Controller

    UIKit框架中有各种Bar,UITabBar.UINavigationBar.UIToolbar.Bar对应的就有一些Item,tabBarItem.navigationItem.toolbarIt ...

  2. UIKit框架使用总结--看看你掌握了多少

    一.经常使用的,基本就是每次项目迭代都需要使用的 UIView.UILabel.UIImage.UIColor.UIFont.UIImageView.UITextField.UIButton. UIS ...

  3. Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)

    原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...

  4. UIKit框架

    在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...

  5. iOS学习32之UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  6. 基础框架Fundation和UIkit框架的定义和使用

    Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...

  7. iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。

    转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...

  8. iOS开发UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  9. 79、iOS 的Cocoa框架、Foundation框架以及UIKit框架

    Cocoa框架是iOS应用程序的基础 1. Cocoa是什么? Cocoa是 OS X和ios 操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发 ...

随机推荐

  1. chrome浏览器下页面顶部出现一条空白解决

    最近遇到页面在chrome浏览器下,顶部会出现一条空白的问题.后来知道是bom头的问题. 1.什么是bom头? BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑 ...

  2. Python--关于set

    慕课网<Pyrhon入门>学习笔记 1.set 特性 set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像. 可以将s ...

  3. Objective-C:Foundation框架-常用类-NSDictionary

    与NSString.NSArray一样,NSDictionary是不可变的,其对应可变类型为NSMutableDictionary.其用法如下: #import <Foundation/Foun ...

  4. express+nodecoffee写passport登录验证实例(一)

    项目中要用到passport登录验证,环境如标题样:express框架,coffee模版引擎,node后台 一:建项目 直接用express命令建,虽然默认模版为jade,可以手动换成coffee哦. ...

  5. uva 1629

    1629 - Cake slicing Time limit: 3.000 seconds A rectangular cake with a grid of m * n <tex2html_v ...

  6. Servlet容器如何同时来处理多个请求

    工作者线程Work Thread:执行代码的一组线程调度线程Dispatcher Thread:每个线程都具有分配给它的线程优先级,线程是根据优先级调度执行的Servlet采用多线程来处理多个请求同时 ...

  7. cisco VPN

    配置实例:公司在北京而分公司在上海,如果租用光纤业务费用会比较高,另外安全性也没有保证,特别是对内网的访问方面.我们要在总公司和分公司之间建立有效的VPN连接.具体网络拓扑如图1所示.北京路由器名为R ...

  8. CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组

    题目链接:CF #365 (Div. 2) D - Mishka and Interesting sum 题意:给出n个数和m个询问,(1 ≤ n, m ≤ 1 000 000) ,问在每个区间里所有 ...

  9. 用Navicat for MYsql创建表,插入中文显乱码

    段都有编码设置.出现乱码肯定是你现在用的编码混乱造成的 解决办法: 第一步 先改数据库编码 先修改你的数据库,如果你页面用的是UTF-8编码那么你数据库内的编码也需要设置为UTF-8,每个字段都需要设 ...

  10. 导航栏视图设置 tabbleView 是设置总背景图

    //导航栏视图设置 tabbleView 是设置总背景图 //默认的时白色半透明(有点灰的感觉), UIBarStyleBlack,UIBarStyleBlackTranslucent ,UIBarS ...