基本上我们今后学习的所有控件都是直接或间接继承于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一样
- 第四个参数不知道是啥;