[iOS基础控件 - 2] 按钮的基本使用

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];
 
 
 
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。