UILabel中有多行文本
有没有一种方法可以在UITextView
使用UILabel
中的多行文本,还是应该使用第二个文本?
我找到了解决方案。
一个只需添加下面的代码:
// Swift
textLabel.lineBreakMode = .ByWordWrapping // or NSLineBreakMode.ByWordWrapping
textLabel.numberOfLines = 0
// For Swift >= 3
textLabel.lineBreakMode = .byWordWrapping // notice the 'b' instead of 'B'
textLabel.numberOfLines = 0
// Objective-C
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
// C# (Xamarin.iOS)
textLabel.LineBreakMode = UILineBreakMode.WordWrap;
textLabel.Lines = 0;
恢复旧的答案(供参考和愿意支持iOS 6.0以下的开发者):
textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;
另一方面,无论如何枚举值都是0
。
在IB中,将行数设置为0(允许无限行)
在使用IB在文本字段中键入内容时,使用“alt-return”插入一个返回并转到下一行(或者可以复制已按行分隔的文本)。
我发现的最佳解决方案(应该在框架中解决的一个令人沮丧的问题)与vaychick相似。
只需在IB或代码中将行数设置为0即可
myLabel.numberOfLines = 0;
这将显示所需的线条,但会重新定位标签,使其水平居中(以使1行和3行标签在水平位置对齐)。 要修复该添加:
CGRect currentFrame = myLabel.frame;
CGSize max = CGSizeMake(myLabel.frame.size.width, 500);
CGSize expected = [myString sizeWithFont:myLabel.font constrainedToSize:max lineBreakMode:myLabel.lineBreakMode];
currentFrame.size.height = expected.height;
myLabel.frame = currentFrame;
链接地址: http://www.djcxy.com/p/28201.html