【问题标题】:adjustsFontSizeToFitWidth doesn't work properly UILabeladjustsFontSizeToFitWidth 不能正常工作 UILabel
【发布时间】:2017-01-08 06:28:31
【问题描述】:

我有一个UILabel 定义如下:

let disclaimerLabel : TTTAttributedLabel = {
    let label = TTTAttributedLabel(frame: CGRectZero)
    label.textColor =  UIColor.whiteColor()
    label.font = UIFont.boldSystemFontOfSize(13)
    label.textAlignment = .Center
    label.numberOfLines = 1
    label.minimumScaleFactor = 0.01
    label.adjustsFontSizeToFitWidth = true
    label.text = "By logging in, you agree to our Privacy Policy and T&C."
    return label
}()

现在的问题是,在 iphone 4 等较旧的手机上,一行文本不适合一行。我认为这可以通过label.adjustsFontSizeToFitWidth = true 行解决,但是标签文本没有适当地缩小文本大小,而是如下所示:By logging in, you agree to our Privacy Policy... 我不能让这个标签有超过一行,因此我不能使用numberofLines = 2label.lineBreakMode = NSLineBreakMode.ByTruncatingTail

在这种情况下,整个文本在一行中可见是绝对必要的。我怎样才能做到这一点?

【问题讨论】:

  • 如果你把你的标签子类的代码贴出来会很有帮助
  • 它在 github 上广泛可用,但它不会覆盖任何这些属性,因此行为应该与 UILabel 的行为相同
  • 我将其前导设置为等于 self.view 和常量 self.view.frame.width *0.1 和尾随相同,所以基本上是屏幕宽度的 80%
  • 现在不在家,等我回来再发帖

标签: ios swift uilabel width font-size


【解决方案1】:

如果您的设备正是 iPhone 4(因此它运行 iOS 7.0 或更低版本),那就是重点。

属性 .adjustsFontSizeToFitWidth 在 iOS SDK 8.0 及更高版本上可用:

https://developer.apple.com/reference/uikit/uilabel/1620546-adjustsfontsizetofitwidth

如果您只需要一行作为标签,请使用.minimumScaleFactor 代替低于 8.0 的 ios。

【讨论】:

  • 这是一台 iPad 2,运行最新版本的 iOS,我将它与 iPhone4 进行了比较,因为该应用程序适用于 iPhone,我只是使用我的 iPad 进行测试,但我发现原生仅限 iPhone 的应用在 iPad 2 和 iPhone 4,4s 系列上的行为非常相似
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 2013-03-30
  • 2010-11-30
  • 2021-10-02
  • 2017-08-06
相关资源
最近更新 更多