这是我的UILabel的代码...
var maximumLabelSize: CGSize = (chosenSpecies.identifyingCharacteristics![index] as NSString).sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(16)])
var identifyingCharacteristicsInformation = UILabel(frame: (CGRectMake(leftMargin, spacingValue, maximumLabelSize.width, maximumLabelSize.height)))
identifyingCharacteristicsInformation.font = UIFont(name: "HelveticaNeue-Light", size: informationTextSize)
identifyingCharacteristicsInformation.textAlignment = NSTextAlignment.Left
identifyingCharacteristicsInformation.text = chosenSpecies.identifyingCharacteristics![index]
identifyingCharacteristicsInformation.text = identifyingCharacteristicsInformation.text!.capitalizedString
identifyingCharacteristicsInformation.textColor=UIColor(red:0.0, green:0.0, blue:0.0, alpha:1)
identifyingCharacteristicsInformation.numberOfLines = 0
identifyingCharacteristicsInformation.lineBreakMode = NSLineBreakMode.ByWordWrapping
identifyingCharacteristicsInformation.preferredMaxLayoutWidth = pictureContainer.frame.width
ScrollView.addSubview(identifyingCharacteristicsInformation)
spacingValue += identifyingCharacteristicsInformation.frame.height
scrollView.contentSize.height += identifyingCharacteristicsInformation.frame.height
以下是发生的事情。这些“特征”中的每一个都使用上面的代码在for循环中打印。如您所见,屏幕上长时间运行的特征。
我一直在网上搜索,原因是为什么这可能会发生几个小时而且已经枯竭了。有没有人知道为什么会这样?我在使用自动换行方面遇到了困难,因为我的理解并非始终如一。通过实现这两行,我能够在我的代码中的其他地方应用它。
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
这是我试图实施Eric Qian的建议。我目前正在努力应用它。
var maxSize: CGSize = CGSize(width: 320, height: 100)
var maximumLabelSize: CGRect = (chosenSpecies.identifyingCharacteristics![index] as NSString).boundingRectWithSize(maxSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont.systemFontOfSize(16)], context: nil)
答案 0 :(得分:0)
检查标签的宽度。我相信它超越了屏幕界限。你需要使用
CGSize maxSize = CGSizeMake(320.0, 1000.0);
CGSize maximumLabelSize = [string boundingRectWithSize:maxSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName: UIFont.systemFontOfSize(16)}
context:nil];
而不是sizeWithAttributes
来获取正确的字符串大小。由于sizeWithAttributes
将整个字符串呈现在一行中。