IOS--UIButton的使用方法
btn.frame = CGRectMake(x, y, width, height);
[btn setTitle: @"search" forState: UIControlStateNormal];
//设置按钮上的自体的大小
//[btn setFont: [UIFont systemFontSize: 14.0]]; //这种可以用来设置字体的大小,但是可能会在将来的SDK版本中去除改方法
//应该使用
btn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
[btn seBackgroundColor: [UIColor blueColor]];
//最后将按钮加入到指定视图superView
[superView addSubview: btn];
==========================================================
tvnamelabel=[[UIButton alloc]initWithFrame:CGRectMake(5,5,200,40)];
这样初始化的button,文字默认颜色是白色的,所有如果背景也是白色的话,是看不到文字的,
btn.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft ;//设置文字位置,现设为居左,默认的是居中
[btn setTitle:@“title”forState:UIControlStateNormal];// 添加文字
有些时候我们想让UIButton的title居左对齐,我们设置
btn.textLabel.textAlignment = UITextAlignmentLeft
是没有作用的,我们需要设置
btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;
但是问题又出来,此时文字会紧贴到做边框,我们可以设置
btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);
使文字距离做边框保持10个像素的距离。
=======================================================
设置UIButton上字体的颜色设置UIButton上字体的颜色,不是用:
[btn.titleLabel setTextColor:[UIColorblackColor]];
btn.titleLabel.textColor=[UIColor redColor];
而是用:
[btn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
IOS--UIButton的使用方法详细
(2013-08-23 17:20:38)
// UIButton的常用方法
UIButton *oneButton = [UIButton buttonWithType:UIButtonTypeCustom]; // 初始化时设置Button样式
// 风格有如下
// typedef enum {
// UIButtonTypeCustom = 0, // 自定义,无风格
// UIButtonTypeRoundedRect, // 白色圆角矩形,类似偏好设置表格单元或者地址簿卡片
// UIButtonTypeDetailDisclosure,//蓝色的披露按钮,可放在任何文字旁
// UIButtonTypeInfoLight,//微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁
// UIButtonTypeInfoDark,//白色背景下使用的深色圆圈信息按钮
// UIButtonTypeContactAdd,//蓝色加号(+)按钮,可以放在任何文字旁
// } UIButtonType;
// 最常用
oneButton.frame = CGRectMake(10, 10, 300, 30); // 设置oneButton的位置和大小
oneButton.backgroundColor = [UIColor blueColor]; // 设置oneButton背景色
oneButton.alpha = 0.8; // 设置oneButton的透明度范围在0.0-1.0之间
[oneButton setTitle:@"我是一个UIButton" forState:UIControlStateNormal]; // 设置在什么状态下显示什么文字
[oneButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];// 设置什么状态下字体什么颜色
[oneButton setBackgroundImage:[UIImage imageNamed:@"image.jpg"]forState:UIControlStateNormal]; // 设置什么状态下显示的背景图像
// 上面几个方法都提到 共同的参数 forState . 这个参数决定了标题、图像或其他属性将在何种状态下显现。你可以编程令按钮在那个状态变化
// enum {
// UIControlStateNormal = 0,//常态
// UIControlStateHighlighted = 1 << 0, // 高亮
// UIControlStateDisabled = 1 << 1, //禁用
// UIControlStateSelected = 1 << 2, // 选中
// UIControlStateApplication = 0x00FF0000,// 当应用程序标志使用时
// UIControlStateReserved = 0xFF000000 // 为内部框架预留的
// };
oneButton.tag = 10001; // 设置标签,用于便于点击的是哪个按钮,常用在委托方法中
[oneButton.titleLabel setFont:[UIFont systemFontOfSize:25.0f]]; // 设置文字的大小
oneButton.adjustsImageWhenDisabled = NO; // 对按钮进行微调。当按钮禁用时,图像会被画的颜色深一些 默认是YES,禁止设置为NO
oneButton.adjustsImageWhenHighlighted = NO; // 对按钮进行微调。当按钮高亮是,图像会被画得颜色深一些 默认是YES,禁止设置为NO
oneButton.showsTouchWhenHighlighted = YES; // 设置点击的时候是否有光照得效果
// 给按钮添加响应事件
[oneButton addTarget:self action:@selector(oneButtonTouchUpInside:)forControlEvents:UIControlEventTouchUpInside];//当按钮被按下时会执行oneButtonTouchUpinside:方法。这个方法是自定义的,需要自己写出。参数是(UIButton *)类型
// 添加到view
[self.view addSubview:oneButton];
UIButton是一个标准的UIControl控件,所以如果你对UIControl不甚了解还是先看一下我的另一篇博文:《UIControl IOS控件编程》
一、创建
两种方法:
1. 常规的 initWithFrame
- UIButton *btn1 = [[UIButton alloc]initWithFrame:CGRectMake(10, 10, 80, 44)];
对代码创建View(UIControl继承自UIView,所以也是view)不甚了解的请参看:《有关View的几个基础知识点》
2. UIButton 的一个类方法(也可以说是静态方法)buttonWithType
- UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
风格有如下
- typedef enum {
- UIButtonTypeCustom = 0, // no button type 自定义,无风格
- UIButtonTypeRoundedRect, // rounded rect, flat white button, like in address card 白色圆角矩形,类似偏好设置表格单元或者地址簿卡片
- UIButtonTypeDetailDisclosure,//蓝色的披露按钮,可放在任何文字旁
- UIButtonTypeInfoLight,//微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁
- UIButtonTypeInfoDark,//白色背景下使用的深色圆圈信息按钮
- UIButtonTypeContactAdd,//蓝色加号(+)按钮,可以放在任何文字旁
- } UIButtonType;
二、设置属性
1.Frame属性
第2种方法创建按钮后你可以给按钮的frame属性赋值,用一个CGRect结构设置他的位置和大小
- CGRect btn2Frame = CGRectMake(10.0, 10.0, 60.0, 44.0);
- btn2.frame =btn2Frame;
2. title属性
对于任何特定状态下的按钮,都可以设定该按钮该状态下的按钮标题。用setTitle 方法 设置即可:
- [btn1 setTitle:@"BTN1" forState:UIControlStateNormal];
你也可以为按钮的某一状态设置为图。用 setImage 即可:
- [btn2 setImage:[UIImage imageNamed:@"pic"] forState:UIControlStateNormal];
此外,你还可以为每种按钮状态设置标题的颜色和阴影,以及按钮的背景。方法 setTitleColor 和 setTitleShadowColor 都需要一个UIColor对象做参数:
- [btn1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];//设置标题颜色
- [btn1 setTitleShadowColor:[UIColor grayColor] forState:UIControlStateNormal ];//阴影
- [btn1 setBackgroundImage:[UIImage imageNamed:@"PIC"] forState:UIControlStateHighlighted];//背景图像
上面几个方法都提到 共同的参数 forState . 这个参数决定了标题、图像或其他属性将在何种状态下显现。你可以编程令按钮在那个状态变化
- enum {
- UIControlStateNormal = 0, //常态
- UIControlStateHighlighted = 1 << 0, // used when UIControl isHighlighted is set 高亮
- UIControlStateDisabled = 1 << 1, //禁用
- UIControlStateSelected = 1 << 2, // flag usable by app (see below) 选中
- UIControlStateApplication = 0x00FF0000, // additional flags available for application use 当应用程序标志使用时
- UIControlStateReserved = 0xFF000000 // flags reserved for internal framework use 为内部框架预留的
- };
- typedef NSUInteger UIControlState;
你只要掌握前四种状态就好了。
当按钮高亮或者禁用,UIButton 类可以调整自己的外观,下面几个属性可以让你按照需要对按钮的外观进行微调:
adjustsImageWhenHighlighted
默认情况下,在按钮被禁用时,图像会被画的颜色深一些。要禁用此功能,请将这个属性设置为NO:
- btn1.adjustsImageWhenHighlighted = NO;
adjustsImageWhenDisabled
默认情况下,按钮在被禁用时,图像会被画的颜色淡一些。要禁用此功能,请将这个属性设置为NO:
- btn1.adjustsImageWhenDisabled = NO;
showsTouchWhenHighlighted
这个属性设置为YES,可令按钮在按下时发光。这可以用于信息按钮或者有些重要的按钮:
- btn1.showsTouchWhenHighlighted = YES;
三、显示控件
显示控件一如继往的简单:
- [self.view addSubview:btn1];
- [self.view addSubview:btn2];
四、重写绘制行为
你可以通过子类化按钮来定制属于你自己的按钮类。在子类化的时候你可以重载下面这些方法,这些方法返回CGRect结构,指明了按钮每一组成部分的边界。
注意:不要直接调用这些方法, 这些方法是你写给系统调用的。
- backgroundRectForBounds //指定背景边界
- contentRectForBounds // 指定内容边界
- titleRectForContentRect // 指定文字标题边界
- imageRectForContentRect //指定按钮图像边界
例:
- - (CGRect)imageRectForContentRect:(CGRect)bounds{
- return CGRectMake(0.0, 0.0, 44, 44);
- }
五、添加动作
按钮是用来干嘛的?用来激发某个动作或事件的。那我们我们要为他添加一个动作,与 UIControl 里讲的一样:
- -(void)btnPressed:(id)sender{
- UIButton* btn = (UIButton*)sender;
- //开始写你自己的动作
- }
- [btn1 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
六、END
END?还未结束,不过UIButton结束了,留下一个未结束的话题: UIBarButtonItem .他和UIButton啥关系,后面会有文章来讲,目前你只要搞清楚UIButton就好了。
一个写此文用的小Demo附在后面:UIButtonDemo
//放置按钮
//登录
UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeSystem];
loginButton.frame = CGRectMake(30, 250, 60, 30);
[loginButton setTitle:@"登录" forState:UIControlStateNormal];
//添加事件
[loginButton addTarget:self action:@selector(loginAction:)
forControlEvents:UIControlEventTouchUpInside];
[_loginView addSubview:loginButton];
//注册
UIButton *registerButton = [UIButton buttonWithType:UIButtonTypeSystem];
registerButton.frame = CGRectMake(120, 250, 60, 30);
[registerButton setTitle:@"注册" forState:UIControlStateNormal];
// [loginButton addTarget:self action:@selector(login:)
// forControlEvents:UIControlEventTouchUpInside];
[_loginView addSubview:registerButton];
//密码找回
UIButton *regetButton = [UIButton buttonWithType:UIButtonTypeSystem];
regetButton.frame = CGRectMake(220, 250, 60, 30);
[regetButton setTitle:@"密码找回" forState:UIControlStateNormal];
// [loginButton addTarget:self action:@selector(login:)
// forControlEvents:UIControlEventTouchUpInside];
[_loginView addSubview:regetButton];
IOS--UIButton的使用方法的更多相关文章
- iOS-提高iOS开发效率的方法和工具
提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...
- IOS UIButton用法详解
这段代码动态的创建了一个UIButton,并且把相关常用的属性都列举了.希望对大家有用. //这里创建一个圆角矩形的按钮UIButton *button1 = [UIButton buttonWi ...
- iOS UIButton 图片文字上下垂直布局 解决方案
实现如图所示效果: 这是一个UIButton,需要改变image和title相对位置. 解决如下: //设置文字偏移:向下偏移图片高度+向左偏移图片宽度 (偏移量是根据[图片]大小来的,这点是关键)b ...
- iOS开发——实用篇&提高iOS开发效率的方法和工具
提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...
- iOS UIButton文字和图片间距随意调整
代码地址如下:http://www.demodashi.com/demo/11606.html 前记 在开发中,我们经常会遇到这么一种情况,就是一个按钮上面有图片也有文字,但是往往设计并不是我们想要的 ...
- iOS·UIButton如何文字在下图片在上
创建子类继承自UIButton,在layoutSubviews方法中改变文字和图片的位置就可以了,同理,稍作改变,可以写出文字在上图片在下.本文只给出文字在下图片在上的代码 -(void)layout ...
- iOS中的过期方法和新的替代方法
关于iOS中的过期方法和新的替代方法 1.获取某些类的UINavigationBar的统一外观并设置UINavigationbar的背景 注:方法名改了但是基本使用方法不变 + (instancety ...
- opencv直线检测在c#、Android和ios下的实现方法
opencv直线检测在c#.Android和ios下的实现方法 本文为作者原创,未经允许,不得转载 :原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/ ...
- iOS与HTML5交互方法总结(转)
今天小编在找技术文章的时候,发现这样一个标题:iOS与HTML5交互方法总结,怎么看着这么熟悉呢? 还以为是刚哥用了别的文章,点进去一看,原来是刚哥自己写的文章,他们转载的,而且还上了Dev St ...
- iOS UISearchController 的使用方法
iOS UISearchController 的使用方法 UISearchController 让用户在 UISearchBar 上输入搜索关键词,展示搜索结果或者进行其他操作.UISearchCon ...
随机推荐
- C语言学习_一个简单程序的解释与C学习方法概括
简单计算器程序示例: # include <stdio.h> //1.头文件 //2.加法函数 int add(int a,int b)//3.函数定义方式 { //4.函数体 retur ...
- myisam MySQL 锁问题
2016-07-23 (点击上方公众号,可快速关注) 来源:阿里云 RDS - 数据库内核组 链接:http://mysql.taobao.org/monthly/2016/03/10/ 前言 最近 ...
- Android常用网址[转]
转自:http://my.oschina.net/u/593225/blog/404423 1.AndroidDevTools URL: http://www.androiddevtools.cn/ ...
- Cocos2d-x 3.0 红孩儿私家必修 - 第二章 cpp-empty-test
上一章我们讲到说曾经的HelloWorld演示更名为cpp-empty-test. 本章我们来分析一下 执行程序,我们能够看到熟悉的HelloWorld程序:与之前cocos2d-x2.x版本号的He ...
- thinkphp 视图模型使用分析
<?php /** * 视图模型 * */ class ViewBatchModel extends ViewModel{ public $viewFields = array( 'Jinxia ...
- photoshopcs5 win7安装报错的解决
因为之前安装了绿色中文破解版的PhotoShop CS5,虽然卸载了,但是注册表还可能残留了其它信息,导致在安装Adobe PhotoShop CS5英文版时一直显示 (Exit Code: 7 ER ...
- 在LINUX中跟踪函数调用----http://stackoverflow.com/
http://stackoverflow.com/questions/311840/tool-to-trace-local-function-calls-in-linux I am looking f ...
- 用Java发送邮件
要用Java发送邮件,除过JDK本身的jar包之外,还需要两个额外的jar包:JavaMail和JAF.当然,如果你使用的JavaEE的JDK,那就不用单独去网上下载了,因为JavaEE的JDK中已经 ...
- OC - 24.CABasicAnimation
概述 简介 CABasicAnimation是抽象类CAPropertyAnimation的子类,可以直接使用 CABasicAnimation又称基本动画,从fromValue到toValue按照指 ...
- mac 连接linux
1.ssh 通过ssh 的方式直接连接linux ssh name@ip -22 例:ssh zyc@192.168.1.100 -22 这个的前提是linux 要开启ssh 服务 先看一下linu ...