【问题标题】:UILabel with skewed text on iOS在 iOS 上带有倾斜文本的 UILabel
【发布时间】:2017-02-24 07:26:32
【问题描述】:

我想让我的文字像图片中一样倾斜。我有所需的字体文件。如何在 Swift 3 中实现这一点?提前致谢!

【问题讨论】:

    标签: swift swift3 uikit uilabel uifont


    【解决方案1】:

    您可以对任何 UIView 子类实例应用 2D 转换。如果label 是你的UILabel,那么:

    label.transform = CGAffineTransform(a: 1.0, b: tan(-0.5), c: 0.0, d: 1.0, tx: 0.0, ty: 0.0)
    

    参数是表示变换的矩阵的值。矩阵是

    |  a  b  0 |
    |  c  d  0 |
    | tx tx  1 |
    

    skew matrix algorithm 详细介绍了如何设置参数。对于您的偏差,b 是重要的值。

    【讨论】:

    • 也许你想说:label.tranform = CGAffineTransform(...)
    • 在 Xcode 和 Safari 中双击会得到不同的结果 :)
    • 工作就像一个魅力!非常感谢! :)
    【解决方案2】:

    对 UILabel 应用变换。一个小的负数b 会像您的图像一样倾斜。游乐场示例:

    let container = UIView(frame: CGRect(x: 0, y: 0, width: 400, height: 200))
    let label = UILabel()
    
    label.text = "ADDRESS"
    label.sizeToFit()
    label.transform = CGAffineTransform(a: 1.0, b: -0.5, c: 0, d: 1.0, tx: 0, ty: 20)
    
    container.addSubview(label)
    PlaygroundPage.current.liveView = container
    
    container
    

    【讨论】:

      【解决方案3】:

      您可以尝试使用CGAffineTransform affineTransformMakeShear() 为您的 UIView 提供所需的倾斜效果。

      【讨论】:

      • affineTransformMakeShear() 在 iOS SDK 中不存在。
      猜你喜欢
      • 2014-01-25
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2014-05-21
      • 2013-07-19
      • 2020-04-01
      • 2012-11-15
      相关资源
      最近更新 更多