如何正确获取 Swift iOS8 中字符串的宽度?
How to properly get the width of a string in Swift iOS8?
我已经阅读了很多关于此的 SO 帖子,但找不到任何有用的东西。
我的代码:
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!
无需自己计算宽度。您可以使用 sizeToFit
使宽度和高度适合文本,然后将框架更改为您想要的高度和原点。
类似于:
[englishLabel sizeToFit];
[parentView addSubview:englishLabel];
englishLabel.center = [parentView convertPoint:parentView.center
fromView:parentView.superview];
您的代码可以像这样简单:
let englishLabel = UILabel(CGRectZero)
label.text = englishString
label.sizeToFit()
label.center = CGPointMake(self.view.center.x, 150)
取决于属性
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)])
我已经阅读了很多关于此的 SO 帖子,但找不到任何有用的东西。
我的代码:
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!
无需自己计算宽度。您可以使用 sizeToFit
使宽度和高度适合文本,然后将框架更改为您想要的高度和原点。
类似于:
[englishLabel sizeToFit];
[parentView addSubview:englishLabel];
englishLabel.center = [parentView convertPoint:parentView.center
fromView:parentView.superview];
您的代码可以像这样简单:
let englishLabel = UILabel(CGRectZero)
label.text = englishString
label.sizeToFit()
label.center = CGPointMake(self.view.center.x, 150)
取决于属性
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)])