美文网首页程序员
UILabel和UITextField

UILabel和UITextField

作者: 每日总结 | 来源:发表于2016-03-12 11:29 被阅读423次

    基本上我们今后学习的所有控件都是直接或间接继承于UIView类;

    UILabel �标签视图

    UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(100,100,100,100)];
    lbl.backgroundColor = [UIColor cyanColor];
    lbl.text = @"一个label";
    [self.view addSubview:lbl];
    [lbl release];
    //设置字体大小
    lbl.font = [UIFont systemFontOfSize:30];
    //对齐
    lbl.textAlignment = NSTextAlignmentCenter;
    //文字阴影颜色
    lbl.shadowColor = [UIColor redColor];
    //文字阴影偏移量
    lbl.shadowOffset = CGSizeMake(2,2);
    //边框
    //每一个继承于UIView的控件都会有CALayer这个属性,Layer是真正绘制视图的,而view是负责展示以及交互的
    lbl.layer.borderWidth = 1;//边框宽度
    lbl.layer.borderColor = [UIColor redColor].CGColor;//边框颜色
    //弧度可以让边框变圆角
    //如果width和height相等,将弧度设为width的一半,label就变成了一个圆
    lbl.layer.cornerRadius = 50;
    lbl.clipsToBounds = YES;//设置去除边缘,没有这个就会有一个白色的框框住label;
    //自动折行
    //label的折行是需要根据label的文本长度以及label自身的宽和高 相互配合使用的
    lbl.numberOfLines = 0;
    

    UITextField 文本输入框

    UITextField继承于UIControl UIControl继承于UIView

    UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(100,100,100,100)];
    //设置占位符
    tf.placeholder = @"请输入XXX";
    //设置边框圆角
    tf.borderStyle = UITextBorderStyleRoundedRect;
    //字体
    tf.font = [UIFont systenFontOfSize:30];//大小
    tf.textAlignment = NSTextAlignmentCenter;//对齐
    tf.textColor = [UIColor blueColor];//字体颜色
    //密码模式
    tf.secureTextEntry = YES;
    //首字母大写
    tf.autocapitalizationType = UITextAutocapitalizationTypeNone;
    //用户交互
    tf.enable = YES;
    //允许用户输入
    tf.userInteractionEnabled = YES;
    //是否清空上一次输入内容
    tf.clearsOnBeginEditing = YES;//键盘回收后再次输入才叫下一次输入
    //键盘回收
    //设置代理为自己
    tf.delegate = self;
    //显示清空按钮
    tf.clearButtonMode = UITextFieldViewModeAlways;
    //设置键盘类型
    tf.keyboardType = UIKeyboardTypeNumberPad;
    //设置return样式
    tf.returnKeyType = UIReturnKeySearch;
    //设置视图
    UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0,0,30,30)];
    leftView.backgroundColor = [UIColor redColor];
    tf.leftViewMode = UITextFieldViewModeAlways;//左边视图显示模式
    tf.leftView = leftView;//设置左边视图
    UIView *keyboardView = [[UIView alloc] initWithFrame:CGRectMake(0,0,0,10)];
    keyboardView.backgroundColor = [UIColor red];
    tf.inputAccessoryView = keyboardView;//键盘上面的视图
    
    UITextField的回收键盘代理方法
    - (BOOL)textFieldShouldReturn:(UITextField*)textField{
        [textField resignFirstResponder];//推出第一响应者
        return YES;
    }
    

    动态返回LBL的高度

    1.numberOfLines必须要设为0
    2.必须设置font(字体大小)
    3.调用sizeToFit方法

    UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0,0,100,0)];//动态返回高度,这里的高度没有太大的意义;
    lbl.text = @"12312312312312312312313232311321232312231231123332132";
    lbl.numbeOfLines = 0;
    lbl.font = [UIFont systemFontOfSize:15];
    [lbl sizeToFit];
    

    取得动态返回得到的高度,需要先设置LBL的text

    CGRect bounds = [lbl.text boundingRectWithSize:CGSizeMake(100, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]} context:nil];
    

    此方法返回的是一个CGRect结构体,一般只用的上bounds.size.height;

    • 由一个字符串对象调用
    • 第一个参数是一个CGSize类型,设置一个固定宽度和一个�最大高度,高度尽量设高
    • 第二个参数是一个系统设置的字符串,我们老师只教了填这个
    • 第三个参数是一个字典 key是一个系统设置的字符串,value是UIFont对象表示字体大小,如果是要得到lbl的高,需要和lbl中设置的font一样
    • 第四个参数不知道是啥;

    相关文章

      网友评论

        本文标题:UILabel和UITextField

        本文链接:https://www.haomeiwen.com/subject/edqtlttx.html