PKAddPassButton 文本和图标太大

PKAddPassButton text and icon too large

当我将 PKAddPassButton 添加到任何项目时,文本和图标看起来异常大。我团队的设计师看着它都觉得恶心,我不怪他们。为了证明这一点,我创建了一个空白项目,这是按钮的外观:

如果将其与 Apple 示例(此处为第 3 页 https://developer.apple.com/wallet/Add-to-Apple-Wallet-Guidelines.pdf)进行比较,文本会非常小。

代码非常少。我在情节提要板上有一个按钮,我从中为我的 PKAddPassButton 取了一个框架。

import UIKit
import PassKit

class ViewController: UIViewController {

    @IBOutlet weak var button: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        let pkButton = PKAddPassButton()
        view.addSubview(pkButton)
        pkButton.frame = button.frame
        button.isHidden = true
    }
}

奇怪的是一开始的尺码就错了。我确认更改按钮的框架不会调整标签或图标的大小。

最好的选择可能是对按钮应用缩放变换。这会起作用:

let scale = CGFloat(floatLiteral: 0.75)
pkButton.transform = CGAffineTransform(scaleX: scale, y: scale)

我不一定推荐这个,但我确实验证了你可以手动调整字体大小:

let label = pkButton.value(forKey: "singleLineLabel")! as! UILabel
let label2 = pkButton.value(forKey: "multiLineLabel")! as! UILabel
label.font = UIFont(name: label.font.fontName, size: 8)
label2.font = UIFont(name: label2.font.fontName, size: 8)

我还没有试过这个图标,但我想你可以做类似的事情。