UIButton
A.素材准备
1.图片素材放置到Images.xcassets中
 
 
B.按钮状态
1.normal:默认状态 Default
对应的枚举常量:UIControlStateNormal
 
2.highlighted(高亮状态)
按钮被按下去的时候(未松开)
对应的枚举常量:UIControlStateHighlighted
 
3.disabled(失效状态,不可用状态)
如果enable属性为NO,就是处于disabled状态,代表按钮不可被点击
对应的枚举常量:UIControlStateDisabled
 
 
C.按钮属性
Type:更改为Custom,消除按下按钮时背景的透明效果
State Config:选择按钮状态,进而设置不同状态下按钮的其他属性
 
D.autolayout 自动布局
autolayout会干扰手动布局编码的运行
 
E.使用tag标记组合多个按钮使用一个方法
 1 - (IBAction)move:(UIButton *) sender {
2 CGRect tempFrame = self.head.frame;
3
4 CGFloat delta = 10;
5 switch (sender.tag) {
6 case 1:
7 {
8 tempFrame.origin.y -= delta;
9 break;
10 }
11 case 2:
12 {
13 tempFrame.origin.x += delta;
14 break;
15 }
16 case 3:
17 {
18 tempFrame.origin.y += delta;
19 break;
20 }
21 case 4:
22 {
23 tempFrame.origin.x -= delta;
24 break;
25 }
26 default:
27 break;
28 }
29
30 self.head.frame = tempFrame;
31 }
 
F.使用center和bounds修改位置、尺寸
使用center改变位置,效果和使用frame差不多
使用bounds改变尺寸,能以中心为基点改变尺寸
 
G.位置移动动画
    // 开始动画
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1];
(位置改变代码)...
    // 提交动画
    [UIView commitAnimations];
 
 
H.手动编码创建按钮
        // 1.创建一个自定义的按钮
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
      
        // 2.添加图片
        [button setImage:[UIImage imageNamed:imageName] forState:state];
      
        // 3.设置尺寸、位置
        button.frame = rect;
      
        // 4.设置tag, tag最好不要用0,因为默认所有都是0,会出现混乱错误,使用viewWithTag:0得到的是当前控件,不是子控件
        button.tag = [[buttonDic objectForKey:@"tag"] intValue];
      
        // 5.监听按钮点击
        [button addTarget:self action:@selector(moveImage:) forControlEvents:UIControlEventTouchUpInside];
      
        // 6.添加按钮
        [self.view addSubview:button];
 
 
 
 

[iOS基础控件 - 2] 按钮的基本使用的更多相关文章

  1. [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)

    A.概述      在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能      1.按钮点击后,显示为“已下载”,并且不 ...

  2. iOS 基础控件(下)

    上篇介绍了UIButton.UILabel.UIImageView和UITextField,这篇就简短一点介绍UIScrollView和UIAlertView. UIScrollView 顾名思义也知 ...

  3. [iOS基础控件 - 7.0] UIWebView

    A.基本使用 1.概念 iOS内置的浏览器控件 Safari浏览器就是通过UIWebView实现的   2.用途:制作简易浏览器 (1)基本请求 创建请求 加载请求 (2)代理监听webView加载, ...

  4. [iOS基础控件 - 6.11.3] 私人通讯录Demo 控制器的数据传递、存储

    A.需求 1.搭建一个"私人通讯录"Demo 2.模拟登陆界面 账号 密码 记住密码开关 自动登陆开关 登陆按钮 3.退出注销 4.增删改查 5.恢复数据(取消修改)   这个代码 ...

  5. [iOS基础控件 - 6.9] 聊天界面Demo

    A.需求 做出一个类似于QQ.微信的聊天界面 1.每个cell包含发送时间.发送人(头像).发送信息 2.使用对方头像放在左边,我方头像在右边 3.对方信息使用白色背景对话框,我方信息使用蓝色背景对话 ...

  6. iOS基础 - 控件属性

    一.控件的属性 1.CGRect frame 1> 表示控件的位置和尺寸(以父控件的左上角为坐标原点(0, 0)) 2> 修改这个属性,可以调整控件的位置和尺寸 2.CGPoint cen ...

  7. [iOS基础控件 - 6.11.4] storyboard 的 Segue

    A.概念 storyboard中的跳转事件连线,都是一个UIStoryboardSegue对象(Segue)   来源控制器      触发控制器 目标控制器      跳转到的控制器     Seg ...

  8. [iOS基础控件 - 6.10.2] PickerView 自定义row内容 国家选择Demo

    A.需求 1.自定义一个UIView和xib,包含国家名和国旗显示 2.学习row的重用   B.实现步骤 1.准备plist文件和国旗图片     2.创建模型 // // Flag.h // Co ...

  9. [iOS基础控件 - 6.9.1] 聊天界面Demo 代码

    框架:   所有代码文件:   Model: // // Message.h // QQChatDemo // // Created by hellovoidworld on 14/12/8. // ...

随机推荐

  1. 多线程(一)NSThread

    iOS中多线程的实现方案: 技术 语言 线程生命周期 使用频率 pthread C 程序员自行管理 几乎不用 NSthread OC 程序员自行管理 偶尔使用 GCD C 自动管理 经常使用 NSOp ...

  2. ZooKeeper 安装部署及hello world

    ZooKeeper  安装部署及hello world 先给一堆学习文档,方便以后查看官网文档地址大全: OverView(概述)http://zookeeper.apache.org/doc/r3. ...

  3. linux下使用yum安装mysql、tomcat、httpd

    一.linux下使用yum安装mysql   1.安装 查看有没有安装过:           yum list installed mysql*           rpm -qa | grep m ...

  4. [Unity菜鸟] 协程Coroutine

    1.协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态. unity中StartCoroutine()就是协程,协程实际上是在一个线程中, ...

  5. 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!

    启动 Eclipse 弹出"Failed to load the JNI shared library jvm.dll"错误的解决方法 http://blog.csdn.net/z ...

  6. 使用IntelliJ Idea创建Spring MVC项目

  7. php中的ceil和floo以及round函数

    ceil是向上进位得到一个值的函数: floor是舍掉小数位得到一个值的函数: round是用来四舍五入的函数. ceil 定义和用法: ceil() 函数向上舍入为最接近的整数. ceil(x); ...

  8. 在Tomcat上配置CAS 自己的体验

    演示环境 本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows732位 JDK 1.6.0_18 Tomcat 6.0.29 CAS-server-3.4 ...

  9. BIG5编码表

    Big5 (Traditional Chinese) character code table code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F ...

  10. 各开源协议BSD,GPL,LGPL,Apache 2.0,mit等简介*

    快速阅读 分类 子分类 开源约定 BSD original BSD license.FreeBSD license.Original BSD license 为所欲为 Apache Licence 2 ...