【问题标题】:PKAddPassButton text and icon too largePKAddPassButton 文本和图标太大
【发布时间】:2017-02-22 15:17:34
【问题描述】:

当我将 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
    }
}

【问题讨论】:

  • 这里的 pkButton 有 button.frame。您是否尝试过更改此值。
  • 我不确定你的意思@Sahin。我确实尝试以不同的大小显示它,但它总是看起来像这样。
  • @MichałKreft 我需要 lil 帮助,我使用相同的代码创建按钮,但图标没有出现任何想法?
  • @MichałKreft 我知道这已经有一段时间了。但是你从哪里得到上面那个是单行按钮而不是两行按钮的按钮?在苹果文档中不再找到从这里下载徽章和指南的单行按钮:developer.apple.com/wallet 只有一个两行按钮。
  • @jeancode 我现在不记得了。但是当我访问 developer.apple.com/wallet 并单击指南时,它会将我指向developer.apple.com/wallet/Add-to-Apple-Wallet-Guidelines.pdf,您仍然可以在第 3 页上看到这两个版本。也许它会根据您提供的宽度自动缩放?

标签: ios swift passkit


【解决方案1】:

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

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

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)

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

【讨论】:

  • 有点骇人听闻,但我会试一试。可能是唯一的选择。看起来按钮上的所有内容都被放大了两次。字体大小、图像和圆角半径看起来是应有的两倍大。我想知道是否有一个单一的属性可以影响它。
  • 这是一个有趣的想法。我正在用另一种选择来修改我的答案——按钮上的 CGAffineTransform。
  • 这个 hack 实际上效果很好。如果您可以更改您的答案以使用比例 CGFloat(floatLiteral: 0.75) 因为这个比例使它看起来像 Apple 设计规范所应该的那样。此外,转换线对我不起作用,因为我的 SDK 中没有这种方法。我使用 CGAffineTransformMakeScale(scale, scale)
  • 我认为 CGAffineTransformMakeScale 是 swift 2,而在 Swift 3 中它就是我上面的方式。 CGAffineTransformMakeScale 在 Xcode 8.2.1 中导致编译错误,建议将其更改为我上面的内容。
  • 这仍然是最好的解决方案吗?按钮子视图不能自行缩放,这太奇怪了……
猜你喜欢
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
  • 1970-01-01
  • 2022-09-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
相关资源
最近更新 更多