如何在Swift iOS8中正确获取字符串的宽度?
问题描述:
我读过一些关于此的SO帖子,但找不到任何有效的东西。如何在Swift iOS8中正确获取字符串的宽度?
我的代码:
let englishTextSize = englishString.sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(14)])
let englishLabel = UILabel(frame: CGRectMake(self.view.center.x, 150, englishTextSize.width, englishTextSize.height))
这段代码导致我的文本周围的椭圆从而避免了宽度不够大。
文本本身使用了很多晦涩的人物,如:
svarūpe-'vasthānam
但我无法想象,把它扔掉那么多。打开Swift或Obj-C中的任何提示,尽管最好是Swift!
答
你的代码可能是像这样简单:
let englishLabel = UILabel(CGRectZero)
label.text = englishString
label.sizeToFit()
label.center = CGPointMake(self.view.center.x, 150)
答
不需要自己计算宽度。您可以使用sizeToFit
使宽度和高度适合文本,然后将框架更改为您想要的高度和原点。
喜欢的东西:
[englishLabel sizeToFit];
[parentView addSubview:englishLabel];
englishLabel.center = [parentView convertPoint:parentView.center
fromView:parentView.superview];
答
依靠属性的
let englishTextSize = englishString.sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(14)])
let englishLabel = UILabel(frame: CGRectMake(self.view.center.x, 150, englishTextSize.width, englishTextSize.height))
print(englishLabel.text.sizeWithAttributes(orderAttributes).width)
答
下面的代码完全适用于me.Hope它将帮助你以及...
let name = "Statue of liberty"
let size = (name as NSString).size(attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 14)])
为什么不使用sizeToFit使其完美调整,然后设置其中心? – Eiko
@Eiko听起来很有希望!我第一次听说这个。我只是一个星期快到dev ..谨慎分享一个例子? – Trip
我在下面的Swift中给出了一个例子 - 也许你需要调整一两件事。也许标签是xib或storyboard文件的出口;但你应该看到这一点。 :) – Eiko