如何在IB中创建PKPaymentButton?

时间:2016-06-03 12:09:11

标签: ios swift interface-builder applepay

以下代码来自WWDC 2015 Session 702 Apple Pay in Apps - 商场:Apple Pay的简单购物体验

    if PKPaymentAuthorizationViewController.canMakePaymentsUsingNetworks(ProductTableViewController.supportedNetworks) {

        let button = PKPaymentButton(type: .Buy, style: .Black)
        button.addTarget(self, action: #selector(ProductTableViewController.applePayButtonPressed), forControlEvents: .TouchUpInside)

        button.center = applePayView.center
        button.autoresizingMask = [.FlexibleLeftMargin, .FlexibleRightMargin]
        applePayView.addSubview(button)
    }

我想知道我们是否可以在IB中创建此按钮。

3 个答案:

答案 0 :(得分:2)

您可以通过编辑“自定义类”字段来更改Interface Builder中Identity Inspector中按钮的类。您在此时为其创建的插座应为PKPaymentButton类型。

答案 1 :(得分:0)

我也在寻找这个,事实证明可以使用IB进行设置。 只需在IB中创建UIButton,将其类型设置为PKPaymentButton,然后在UserDefinedRuntimeAttributes中根据需要设置“ style”和“ type”,分别对应于PKPaymentButtonStyle和PKPaymentButtonType。 例如:

type = 1 //corresponding to - PKPaymentButtonTypeBuy
style = 2 //corresponding to - PKPaymentButtonStyleBlack

Example Setup

这就是你最终得到的:

Example Button

PS。有趣的是,您可以在IB属性中设置cornerRadius,但是如您所见,它不会影响按钮。似乎即使在代码中进行设置也无济于事。因此,如果您不想被矩形PKPaymentButton卡住-只需将其放在视图中即可,您可以将其圆角,并确保在IB(或代码Clip to Bounds中打勾yourButtonHolder.clipsToBounds = true

答案 2 :(得分:0)

是的,我们可以使用以下几行代码来设置样式和按钮类型。

applePayButton.setValue(paymentButtonStyle.rawValue, forKey: "style") applePayButton.setValue(2, forKey: "type")