【发布时间】:2017-02-24 07:26:32
【问题描述】:
【问题讨论】:
标签: swift swift3 uikit uilabel uifont
【问题讨论】:
标签: swift swift3 uikit uilabel uifont
您可以对任何 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(...)
对 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
【讨论】:
您可以尝试使用CGAffineTransform affineTransformMakeShear() 为您的 UIView 提供所需的倾斜效果。
【讨论】:
affineTransformMakeShear() 在 iOS SDK 中不存在。