zoukankan      html  css  js  c++  java
  • UILable  /  UITextField  /   UIButton

    // 获取屏幕大小的view
    UIView *contentView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; // bound是个矩形 bounds类型是CGRect
     

    #pragma mark - UILable知识点

       
        // UILable(标签),继承自UIView,主要用来显示文本,是在UIView基础上扩充出来的功能
        /*
         1.创建控件
         2.配置控件的属性
         3.添加到父视图
         4.释放控件
        
         */
    // 1.创建UILable控件
        UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 300, 80)];// 使用父类的方法创建
       
        // 2.配置UILable的属性
        // 2.1 背景颜色
        lable.backgroundColor = [UIColor greenColor];
       
        // 2.2 设置显示的文本
        lable.text = @"AV达人 zhaoYaZhou and liuNing and liGuoQing and wangZhongJian";
       
        // 2.3 设置文本颜色
        lable.textColor = [UIColor whiteColor];
       
        // 2.4 设置文本字体
        // 设置的是系统默认字体大小
        lable.font = [UIFont systemFontOfSize:10];
        // 字体采用加粗的字体样式
        lable.font = [UIFont boldSystemFontOfSize:40];
        // 遍历系统中所有的字体名字
        for (NSString *name in [UIFont familyNames]) { //familyNames 是个数组
           
            NSLog(@"%@", name);
           
        }
        // 设置字体
        lable.font = [UIFont fontWithName:@"Didot" size:18];
       
        // 2.5 设置文本行数
        // numberOfLines 设置为0,表示不限制行数,自动填充到lable中
        // numberOfLines 默认值是1
        lable.numberOfLines = 0;
       
        // 2.6 设置换行格式
        // 根据单词换行
        //NSLineBreakByWordWrapping (默认)
        // 根据字符换行
        lable.lineBreakMode = NSLineBreakByCharWrapping;
       
        // 2.7 设置字体的阴影颜色
        lable.shadowColor = [UIColor redColor];
        // 2.8 设置阴影偏移量
        lable.shadowOffset = CGSizeMake(-2, -2);
       
        // 2.9 设置文本对齐方式
        // NSTextAlignmentLeft 左对齐
        // NSTextAlignmentRight 右对齐
        // NSTextAlignmentCenter 居中
        lable.textAlignment = NSTextAlignmentCenter;
       
        // 2.10 给lable切圆角,下面两个属性要同时设定
        lable.layer.cornerRadius = 20;
        lable.layer.masksToBounds = YES;
        // 3.添加到父视图
        [contentView addSubview:lable];
       
        // 4.释放控件
        [lable release];
     

    #pragma mark - UITextField知识点

    //    UITextField 继承自UIControl,是在UILable的基础上扩充了文本输入的功能,可以允许用户输入文本,编辑文字
    //  UIControl 继承自UIView
        // shift + command + k : 回收键盘
        // 1. 创建UITextField对象
        UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(10, 200, 300, 40)]; // 也是使用父类的方法创建
       
        // 2. 配置UITextField的属性
        // 2.1 设置背景颜色
        textField.backgroundColor = [UIColor whiteColor];
        // 2.2 设置textField的提示字符
        textField.placeholder = @"请输入名字";
        // 2.3 设置输入框中的文本
        textField.text = @"AV达人";
        // 2.4 设置文本输入框字体的颜色 (只影响输入字体的颜色,不影响提示字符)
        textField.textColor = [UIColor orangeColor];
        // 2.5 设置文本输入的对齐方式
        textField.textAlignment = NSTextAlignmentLeft;
        // 2.6 设置textField输入框是否可以编辑.默认是可编辑的
        //textField.enabled = NO;
        // 关闭用户交互
        //textField.userInteractionEnabled = NO;
        // 2.7 当文本输入框开始编辑的时候是否清空输入框中的内容,默认值是NO,只在第一次起作用
        textField.clearsOnBeginEditing = YES;
        // 2.8 设置键盘弹出的样式.
        textField.keyboardType = UIKeyboardTypeDefault;
        // 2.9 设置return键的样式
        textField.returnKeyType = UIReturnKeyGo;
        // 2.10 设置输入边框的样式
        /*
        
         UITextBorderStyleNone, // 无边框样式
         UITextBorderStyleLine, // 实线边框
         UITextBorderStyleBezel, // 倾斜面边框
         UITextBorderStyleRoundedRect // 圆角边框
        
        */
        textField.borderStyle = UITextBorderStyleRoundedRect;
        textField.layer.cornerRadius = 20;// 这种也行
       
        // 2.11 设置键盘的弹出视图, 可以在弹出视图上自定义键盘
        /*
        UIView *inputView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
        inputView.backgroundColor = [UIColor cyanColor];
        textField.inputView = inputView;
        [inputView release];
        */
        // 2.12 设置键盘的辅助视图
        UIView *accseeView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
        accseeView.backgroundColor = [UIColor redColor];
        textField.inputAccessoryView = accseeView;
        [accseeView release];
       
        // 2.13 设置文本输入框的清空按钮
        /*
         UITextFieldViewModeNever,
         UITextFieldViewModeWhileEditing, // 开始编辑时出现清空按钮
         UITextFieldViewModeUnlessEditing, // 当不编辑时弹出清空按钮,编辑时按钮消失
         UITextFieldViewModeAlways // 一直显示,除非输入框中没有内容
         */
        textField.clearButtonMode = UITextFieldViewModeUnlessEditing;
       
        // 2.14 设置文本输入框是否以密文形式显示输入内容
        textField.secureTextEntry = YES;
       
        // 2.15 设置代理属性
        /*
        如何使用系统写好的协议设置代理
         1. 设置代理
         2. 让代理对象遵循协议
         3. 实现协议中的方法
         4. 告诉代理什么时候去干活
         */
       
        textField.tag = 250;
       
        textField.delegate = self;
    ////////////////////
    #pragma mark - 实现UITextField协议中的方法
    // called when 'return' key pressed. return NO to ignore.
    // 当点击return按钮的时候触发此方法
    - (BOOL)textFieldShouldReturn:(UITextField *)textField { // textField会自动传过来,不用管
        // 取消第一响应者 取消的效果就是回收键盘
        [textField resignFirstResponder];
        return YES;
    }
    /////////////////
     
        // 3.添加到父视图
        [contentView addSubview:textField];
       
        // 4.释放
        [textField release];

    // 2.15 设置代理属性
        /*
        如何使用系统写好的协议设置代理
         1. 设置代理
         2. 让代理对象遵循协议
         3. 实现协议中的方法
         4. 告诉代理什么时候去干活 (点击return的时候)
         */
     
     
    或者也可以在AppDelegate类的延展上遵循协议,如下:
     
    textField.delegate = self; // 设置代理,代理是AppDelegate
     
    #pragma mark - 实现UITextField协议中的方法
    // called when 'return' key pressed. return NO to ignore.
    // 当点击return按钮的时候触发此方法
    - (BOOL)textFieldShouldReturn:(UITextField *)textField { // textField会自动传过来,不用管
        // 取消第一响应者 取消的效果就是回收键盘
        [textField resignFirstResponder];
        return YES;
    }
     
    另一种方法:
     contentView.tag = 200; // 设置contentView的tag值
     textField.tag = 250;
    #pragma mark - 点击空白处实现回收键盘
    // 点击屏幕时,手指离开的瞬间触发
    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
        // 先拿到contentView
        UIView *contentView = [self.window viewWithTag:200];
       
        // 通过tag值取出textField
        UITextField *textField = (UITextField *)[contentView viewWithTag:250];
        // 取消第一响应者
        [textField resignFirstResponder];
       
    }
     
    /*
    // 有时需要注意类型转换
    // 点击空白处收回键盘
    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
       
        for (int i = 200; i < 206; i++) {
           
            LTView *t = (LTView *)[self viewWithTag:i]; 
            [t.textField resignFirstResponder];
           
        }
    }
    */
     

    #pragma mark - UIButton知识点


    //    UIButton 继承自UIControl,是iOS中用来响应用户点击事件的按钮
        // UIButton 有自己的创建方法
        // 1. 创建UIButton对象
        /*button的样式
         UIButtonTypeCustom ,      //!!!! 自定义样式, 如果要给button添加图片,必须使用此种样式
         UIButtonTypeSystem ,    // standard system button 系统样式
        
         UIButtonTypeDetailDisclosure,   // 详情按钮
         UIButtonTypeInfoLight,          // 详情按钮
         UIButtonTypeInfoDark,           // 详情按钮
         UIButtonTypeContactAdd,         // 加号按钮
         */
        UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; // 不用释放button
       
        // 2.配置button的属性
        // 2.1 背景颜色
        button.backgroundColor = [UIColor cyanColor];
        // 2.2 单独设置button的frame(位置和大小)
        button.frame= CGRectMake(30, 260, 260, 50);
        // 2.3 给button切圆角
        button.layer.cornerRadius = 7;
       
        //! 2.4 给button添加标题, 注意添加标题的时候一定要指明,button的状态
        /*状态
         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
        
         */
        //[button setTitle:@"正常状态" forState:UIControlStateNormal];
        //[button setTitle:@"高亮状态" forState:UIControlStateHighlighted]; // 按住不丢
        //[button setTitle:@"不可用状态" forState:UIControlStateDisabled];
        //[button setTitle:@"可选中状态" forState:UIControlStateSelected]; // 触发不了
       
        [button setTitle:@"登录" forState:UIControlStateNormal];
       
       
        // 2.5 设置button的状态是否可用
        //button.enabled = NO;
       
        // 2.6 设置button上title的文字大小
        //! button是个复合视图,集成了几种控件, 其中titleLable是用来放置标题的,还有一个imageView用来显示图片
        button.titleLabel.font = [UIFont systemFontOfSize:20];
        // 2.7 设置button内容的颜色
    //    [button.titleLabel.textColor] = [UIColor redColor]; // 这种改不了文本颜色
        button.tintColor = [UIColor grayColor]; // tintColor
       
        /*
        // 2.8 给button添加图片
        //! 要添加图片,要换成 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 自定义格式才能添加图片
    //    UIImage 继承自NSObject,不是一个视图,如果要展示UIImage需要使用UIImageView来展示
        // .png格式的图片不需要加后缀,其他格式都需要加后缀
        UIImage *image1 = [UIImage imageNamed:@"立即.jpg"]; // png格式的图片不需要加后缀了
        UIImage *image2 = [UIImage imageNamed:@"立即登录.jpg"];
        // 高亮状态
        [button setImage:image1 forState:UIControlStateHighlighted]; // 会和文本抢地盘 ,二选一,要么添加图片,要么添加文本
        // 正常状态
        [button setImage:image2 forState:UIControlStateNormal];
        */
       
        //! button关联事件
        // 1. target : button指定的响应对象
        // 2. action : 指定的响应对象调用的方法
        // 3. events : 事件的触发时机
        [button addTarget:self action:@selector(handleAction:) forControlEvents:UIControlEventTouchUpInside];
       
       
        // 3. 添加到父视图上
        [contentView addSubview:button];
    #pragma mark - 实现button的点击事件方法  button关联事件
    - (void)handleAction:(UIButton *)button { // 自动传进来参数
       
        NSLog(@"鼓掌");
       
        //! 取出某个状态下的button标题 VIP
       
         NSString *title = [button titleForState:UIControlStateNormal];
         // 添加关联事件
        
         if ([title isEqualToString:@"登录"]) {
        
         [button setTitle:@"下线" forState:UIControlStateNormal];
        
         }else if ([title isEqualToString:@"下线"]) {
            
             [button setTitle:@"登录" forState:UIControlStateNormal];
         }
       
       
    }

     Practice:
     
     
  • 相关阅读:
    Nginx的configure各项中文说明
    nginx+keepalived高可用及双主模式
    nginx实现请求的负载均衡 + keepalived实现nginx的高可用
    Keepalived详细介绍简介
    keepalived vip漂移基本原理及选举算法
    keepalived脑裂问题查找
    计算机网络的三种通讯模式(单播,广播,组播)
    二层交换机、三层交换机、路由器
    Linux /var/log下的各种日志文件详解
    报文、帧、数据包等的区别
  • 原文地址:https://www.cnblogs.com/yunji5566/p/5022448.html
Copyright © 2011-2022 走看看