iOS开发基础篇-Button基础
一、简单介绍
UIButton 的功能:响应用户操作、显示文字、显示图片、调整内部图片和文字的位置。
二、 UIButton 的状态
UIControlStateNormal :普通状态,为默认情况。
UIControlStateHighlighted :高亮状态,按钮被按下去的时候(手指还未松开)。
UIControlStateDisabled :不可用状态,此时 enabled 属性为 NO ,按钮不可以被点击。
三、注意点
若干个空间共用一段代码,通过使用 tag 属性。
四、实例演示
新建一个Single View Application,向Main.storyboard中添加按钮,如下所示:
其中上移按钮的tag为1,下移按钮的tag为2,左移按钮的tag为3,右移按钮的tag为4,都与事件move建立连接。放大按钮的tag为0,缩小按钮的tag为1,都与事件zoom建立连接。

//ViewComtroller.m
1 #import "ViewController.h" typedef NS_ENUM(NSUInteger, kMovingDir)
{
kMovingDirTop = ,
kMovingDirButtom,
kMovingDirLeft,
kMovingDirRight,
}; CGFloat const kMovingDelta = 50.0; //移动系数
CGFloat const kZoomingDelta = 50.0; //放大缩小系数 @interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *headImageView; //可移动的图片按钮
@end
//ViewController.m
1 - (IBAction)move:(id)sender {
UIButton *button = (UIButton *)sender; CGPoint p = self.headImageView.center;
switch (button.tag) {
case kMovingDirTop: p.y -= kMovingDelta; break; //往上移动
case kMovingDirButtom: p.y += kMovingDelta; break; //往下移动
case kMovingDirLeft: p.x -= kMovingDelta; break; //往左移动
case kMovingDirRight: p.x += kMovingDelta; break; //往右移动
} [UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
self.headImageView.center = p;
[UIView commitAnimations];
} - (IBAction)zoom:(id)sender {
UIButton *button = (UIButton *)sender; CGRect rect = self.headImageView.bounds;
if (button.tag) {
rect.size.width -= kZoomingDelta;
rect.size.height -= kZoomingDelta;
} else {
rect.size.width += kZoomingDelta;
rect.size.height += kZoomingDelta;
} [UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
self.headImageView.bounds = rect;
[UIView commitAnimations];
}
五、补充
1、修改对象的结构体成员
在OC中,不允许直接修改对象的结构体属性的成员,但是允许修改对象的结构体属性。
修改结构体属性的成员方法如下:
1)使用临时变量记录对象的结构体属性,
2)修改临时变量的属性;
3)将临时变量重新设置给对象的结构体属性。
参考博客:iOS开发UI篇—Button基础
本部分iOS代码:http://pan.baidu.com/s/1o6VmJ4Q
iOS开发基础篇-Button基础的更多相关文章
- iOS开发UI篇—Button基础
		iOS开发UI篇—Button基础 一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状 ... 
- iOS开发UI篇——Button基础
		一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状态 1. normal(普通状态) ... 
- iOS开发UI篇—核心动画(基础动画)
		转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ... 
- iOS开发网络篇—网络编程基础
		iOS开发网络篇—网络编程基础 一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过 ... 
- swift开发多线程篇 - 多线程基础
		swift开发多线程篇 - 多线程基础 iOS 的三种多线程技术 (1)NSThread 使用NSThread对象建立一个线程非常方便 但是!要使用NSThread管理多个线程非常困难,不推荐使用 ... 
- iOS开发UI篇—transframe属性(形变)
		iOS开发UI篇—transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两 ... 
- iOS开发UI篇—iOS开发中三种简单的动画设置
		iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ... 
- iOS开发UI篇—transframe属性(形变)
		iOS开发UI篇—transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两 ... 
- iOS开发网络篇—简单介绍ASI框架的使用
		iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ... 
随机推荐
- ASP.NET Core 2.1 : 十一. 如何在后台运行一个任务
			在大部分程序中一般都会需要用到后台任务, 比如定时更新缓存或更新某些状态.(ASP.NET Core 系列目录) 一.应用场景 以调用微信公众号的Api为例, 经常会用到access_token,官方 ... 
- Spring Boot 2.x(十三):你不知道的PageHelper
			PageHelper 说起PageHelper,使用过Mybatis的朋友可能不是很陌生,作为一款国人开发的分页插件,它基本上满足了我们的日常需求.但是,我想去官方文档看看这个东西配合Spring B ... 
- 开源项目福利-github开源项目免费使用Azure PipeLine
			微软收购Github后,很多人猜想微软可能会砍掉VSTS,然而事实VSTS并没有砍掉,关于Azure Devops的详细信息可以查看 这篇博客,如果想查看原文也可以从链接里提供的原始地址里查看. 今天 ... 
- 我的 OneNote 入门心得
			Microsoft OneNote 是老牌笔记类软件,在如今百花齐放的笔记类市场仍然有众多死忠粉的拥护,比如我.也试过其它笔记类软件,近年推出的 Notion 就不错,但仍然无法取代 OneNote ... 
- [日常] imap协议读取邮件
			telnet imap.sina.net 143 A01 LOGIN shihan@appdev.sinanet.com 密码 A02 list "" * //列出邮件夹 * LI ... 
- phpmock测试
			随着互联网发展,前后端分离的开发模式兴起,Mock也从以住的幕后走上了台面,让更多的人而得知, 以前传统的开发方式Mock大多局限在后端人员接触较多一些,那么什么是Mock? Mock其实就是真实数据 ... 
- hbuilder vs2013api   Access-Control-Allow-Origin
			<httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" valu ... 
- gulp前端自动化构建并上传oss
			前言 前端自动化构建工具从最开始的grunt, gulp, fis等到现在比较流行的webpack可谓层出不穷,个人还是比较倾向于gulp,虽然有的时候会因为某个插件的配置问题头疼很久,但不可否认gu ... 
- alibaba fastjson 使用
			// 对象转 json 字符串 User user1 = new User("Marry", 30, new Date()); String str1 = JSON.toJSONS ... 
- Android获取定位权限,获取设备所在的经纬度
			转载请标明出处:http://www.cnblogs.com/tangZH/p/8969898.html 前言: 有时候我们仅仅是想要获取设备所在的经纬度,那么直接调用Android相关的api就可 ... 
