UITextView 是 UILabel 的加强版本,比UILabel支持的功能更多。
以下是UI的实际运行效果所对应的区别:
-
对应代码:
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UITextView * textView = [[UITextView alloc] initWithFrame:CGRectMake(40, 50, 300, 100)];
textView.text = @"UILabel和UITextView的区别:两者都可以用于展示文本内容,不同点是UITextView还有其它UILabel所没有的功能呢:1:当文本内容过长的时候,UILabel会使用省略号来省略;UITextView会采用滚动条的方式来展示剩下的内容;\n 2:UILabel长按不会弹出编辑菜单条,而UITextView会弹出编辑菜单条(Cut Copy Past Replace...等)\n 3:UILabel的文本内容不可以进行修改而UITextView是可以直接进行修改的,可以直接写入和删除";
textView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
textView.showsVerticalScrollIndicator = YES;
[self.view addSubview:textView];
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(40, 250, 300, 100)];
label.text = @"UILabel和UITextView的区别:两者都可以用于展示文本内容,不同点是UITextView还有其它UILabel所没有的功能呢:1:当文本内容过长的时候,UILabel会使用省略号来省略;UITextView会采用滚动条的方式来展示剩下的内容;\n 2:UILabel长按不会弹出编辑菜单条,而UITextView会弹出编辑菜单条(Cut Copy Past Replace...等)\n 3:UILabel的文本内容不可以进行修改而UITextView是可以直接进行修改的,可以直接写入和删除";
label.numberOfLines = 0;
[label sizeToFit];
[self.view addSubview:label];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
2.- (void)sizeToFit 和 - (CGSize)sizeThatFits:(CGSize)size 的区别
一.图解
单行UILabel
多行UILabel
单行UILabel sizeThatFits:CGSizeZero
多行UILabel sizeThatFits:CGSizeZero(label.frame.size.width, 0) 将宽度作为参数,这样计算出的高度才正确