gpt4 book ai didi

ios - UILabel byWordWrapping 行为不当

转载 作者:行者123 更新时间:2023-11-30 14:15:09 25 4
gpt4 key购买 nike

这是我的 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 循环中打印的。正如您所看到的,这些特征是在屏幕之外长期存在的。

http://imgur.com/hbinE5n

几个小时以来,我一直在网上搜索为什么会发生这种情况,但一直没有找到答案。有谁知道为什么会发生这种情况?我在使用自动换行时遇到困难,因为我的理解并不完整。只需实现这两行,我就可以将其应用到代码中的其他位置。

label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping

这是我对埃里克·钱的建议的尝试实现。我目前正在努力应用它。

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)

最佳答案

检查标签的宽度。我相信它超出了屏幕范围。您需要使用

CGSize maxSize = CGSizeMake(320.0, 1000.0);
CGSize maximumLabelSize = [string boundingRectWithSize:maxSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName: UIFont.systemFontOfSize(16)}
context:nil];

而不是sizeWithAttributes来获取字符串的正确大小。由于 sizeWithAttributes 在一行中呈现整个字符串。

关于ios - UILabel byWordWrapping 行为不当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31279586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com