iOS开发 UIButton使用,UITexeField使用

上节回顾

上篇讲了UILabel的使用,涉及到的都是一些基本属性,有些属性没有讲到,有需要的可以参考开发者文档。

本节内容

  1. UIButton的使用
  2. UITextField的使用
  3. 使用UILabel,UIButton,UITextField创建一个简单登陆界面

UIButton的使用

在昨天创建的项目中,我们先把UILabel给注释掉。注释的快捷操作是选中需要注释的代码,使用command+/即可。如果想把注释掉的内容恢复,再重复一次即可。
在viewcontroller.m文件的代码如下
首先我们实例化一个按钮

//实例化一个button
    UIButton *btn1 = [[UIButton alloc]initWithFrame:CGRectMake(50, 200, 100, 20)];

接下来设置按钮的一些属性

 //设置按钮标题及对应状态
    [btn1 setTitle:@"按钮" forState:UIControlStateNormal];
    [btn1 setTitle:@"已点击" forState:UIControlStateHighlighted];
 //设置标题颜色
    [btn1 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
 //设置按钮的背景颜色
    btn1.backgroundColor = [UIColor orangeColor];

其中按钮的状态有如下几种

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 为内部框架预留的

为按钮添加事件

 [btn1 addTarget:self action:@selector(show) forControlEvents:UIControlEventTouchUpInside];
 //方法名
 -(void)show
{
    UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(50, 225, 100, 20)];
    lab.textColor = [UIColor greenColor];
    lab.textAlignment = NSTextAlignmentRight;
    lab.font = [UIFont systemFontOfSize:20];
    lab.backgroundColor = [UIColor redColor];
    lab.text =@"helloworld";
    [self.view addSubview:lab];
}


按钮事件的触发情况又如下几种

UIControlEventTouchDown = 1 << 0, // on all touch downs
UIControlEventTouchDownRepeat = 1 << 1, // on multiple touchdowns (tap count > 1)
UIControlEventTouchDragInside = 1 << 2,
UIControlEventTouchDragOutside = 1 << 3,
UIControlEventTouchDragEnter = 1 << 4,
UIControlEventTouchDragExit = 1 << 5,
UIControlEventTouchUpInside = 1 << 6,
UIControlEventTouchUpOutside = 1 << 7,
UIControlEventTouchCancel = 1 << 8,

 UIControlEventValueChanged                                      = 1 << 12,     // sliders, etc.
 UIControlEventPrimaryActionTriggered NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 13,     // semantic action: for buttons, etc.
 
 UIControlEventEditingDidBegin                                   = 1 << 16,     // UITextField
 UIControlEventEditingChanged                                    = 1 << 17,
 UIControlEventEditingDidEnd                                     = 1 << 18,
 UIControlEventEditingDidEndOnExit                               = 1 << 19,     // 'return key' ending editing
 
 UIControlEventAllTouchEvents                                    = 0x00000FFF,  // for touch events
 UIControlEventAllEditingEvents                                  = 0x000F0000,  // for UITextField
 UIControlEventApplicationReserved                               = 0x0F000000,  // range available for application use
 UIControlEventSystemReserved                                    = 0xF0000000,  // range reserved for internal framework use
 UIControlEventAllEvents                                         = 0xFFFFFFFF

接着我们将按钮添加到我们的视图中

//将按钮添加到视图中
    [self.view addSubview:btn1];

运行结果如下
运行结果

UITextField的使用

仿照UIButton,首先创建一个实例化对象

UITextField *tf = [[UITextField alloc]initWithFrame:CGRectMake(50, 255, 200, 40)];

接着设置一些属性

  //设置底层标题
    tf.placeholder = @"请输入内容";
    //设置边框
    tf.borderStyle = UITextBorderStyleRoundedRect;
    //设置背景颜色
    tf.backgroundColor = [UIColor whiteColor];

将文本框添加到视图上

//添加到视图
    [self.view addSubview:tf];

结果:
textfield使用

登录界面创建

登录界面在一个应用当中是个静态界面,因此我们采用xib+代码的形式来创建这个界面,并且在创建是讲解一下AutoLayout(自动布局)。
大家在接下来的代码中,只需要关注UILabel,UIButton,UITextField,三个控件的状态即可。为了方便理解,我将以上创建控件全部注释掉。
自动布局操作:
在这里插入图片描述
viewcontroller.m代码

#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *load;
@property (weak, nonatomic) IBOutlet UITextField *name;
@property (weak, nonatomic) IBOutlet UITextField *code;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //设置圆角
    _load.layer.cornerRadius = 5;
    _load.layer.masksToBounds = YES;
    [_load addTarget:self action:@selector(load1) forControlEvents:UIControlEventTouchUpInside]; 
}
-(void)load1
{
    NSString *str = [[NSString alloc]initWithString:_name.text];
    NSString *str1  =[[NSString alloc]initWithString:_code.text];
    //规定用户名长度为13位,密码长度为9位
    if (str.length != 13 && str1.length != 9) {
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"账号或密码错误" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
        UIAlertAction *ok = [UIAlertAction actionWithTitle:@"ok" style:UIAlertActionStyleDefault handler:nil];
        [alert addAction:cancel];
        [alert addAction:ok];
        [self presentViewController:alert animated:YES completion:nil];
    }else
    {
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"登录成功" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *ok = [UIAlertAction actionWithTitle:@"ok" style:UIAlertActionStyleDefault handler:nil];
        [alert addAction:ok];
        [self presentViewController:alert animated:YES completion:nil];
    }
}

@end

运行结果
运行结果

总结

今天讲了两个控件,以及三个控件的组合使用,总的来说这三个控件在今后的学习中会很重要。它们的一些属性,我这里有总结不全的可以去开发者文档找找。

下篇预告

UIView,UIViewController的使用。有时间会讲解一下UIImage与UIImageView的使用。关于OS X的开发,等着把iOS中的控件讲完,再做打算。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值