项目中今天用到了自动换行 ,突然发现自己好想忘记了什么了。哦,Label的自动换行,因为自己记录的笔记太多了。找了好久没找到,所以今天在这里记录一下。
其实这里我有几个问题,有读到兄弟可以给我留言解答一下。为什么要给进入上下文的时候要设置一个非常大的高度,难道是为了计算时的高度过高导致溢出?
下面给出代码:
_label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 45)];
_label.text = @"轩辕姓,为汉字复姓,在《百家姓》中排名第431位。轩辕这一姓来源相当古老,最早来自于黄帝,因黄帝居于轩辕之丘,后代一部分子孙便以轩辕为姓氏,称“轩辕氏”。这个姓氏目前仍有使用。";
self.label.textColor = [UIColor redColor];
self.label.numberOfLines = 0;
UIFont *font = [UIFont systemFontOfSize:17];
self.label.font = font;
CGSize size = CGSizeMake(400, 1000);
CGRect rect = [self.label.text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, nil] context:nil];
NSLog(@"x is %f, y is %f", rect.origin.x, rect.origin.y);
NSLog(@"width is %f, height is %f", rect.size.width, rect.size.height);
self.label.frame = rect;
self.label.center = self.view.center;
[self.view addSubview:self.label];
通过笔者一番深夜研究,通过对字体大小的调整,原来行高时根据自己大小计算的,我个人表示这事什么设计哲学啊。然后就是迷之行间距,这个留给大家去研究吧。都这么晚了。笔者要睡觉了。晚安各位。