iOS : 将 Braintree 返回的 UIView 添加到屏幕
iOS : Add a UIView returned by Braintree to the screen
我正在按照 Braintree 的指南将 dropIn 功能添加到 iOS 应用程序。为了显示 dropIn 我使用以下方法:
func showDropIn(clientTokenOrTokenizationKey: String) {
let request = BTDropInRequest()
let dropIn = BTDropInController(authorization: clientTokenOrTokenizationKey, request: request)
{ (controller, result, error) in
if (error != nil) {
print("ERROR")
} else if (result?.isCancelled == true) {
print("CANCELLED")
} else if let result = result {
let paymentMethod = result.paymentMethod!.nonce
self.paymentNonce = paymentMethod
self.paymentLabel.text = result.paymentDescription
print(result.paymentIcon)
}
controller.dismiss(animated: true, completion: nil)
}
self.present(dropIn!, animated: true, completion: nil)
}
在用户选择特定付款方式后,我想做的是在屏幕上同时显示说明 ("ending in XX") 和卡的图标。我对描述没有问题,但我不知道如何让卡片图标显示。
下一行:
print(result.paymentIcon)
returns 以下:
<BTUIKMasterCardVectorArtView: 0x7fd04ad15280; frame = (0 0; 0 0); opaque = NO; layer = <CALayer: 0x600000230c20>>
根据文档,result.paymentIcon 是一个 UIView。
@property(readonly, nonatomic) UIView *_Nonnull paymentIcon;
A UIView (BTUIKPaymentOptionCardView) that represents the payment option
我试过设置 UIView,然后将 paymentIcon 添加为子视图,但我仍然无法显示它。
let paymentIcon = result.paymentIcon
self.iconView.addSubview(paymentIcon)
您可以使用 BTUIKViewUtil.vectorArtView
方法检索图像并在 UIImageView
中显示,如下所示:
let size = CGSize(width: WIDTH_HERE, height: HEIGHT_HERE)
let imageView = UIImageView(frame: CGRect(origin: .zero, size: size))
imageView.image = BTUIKViewUtil.vectorArtView(for: result.paymentOptionType).image(of: size)
示例 2,使用 paymentIcon
视图:
let view = result.paymentIcon as? BTUIKVectorArtView
imageView.image = view?.image(of: size)
我正在按照 Braintree 的指南将 dropIn 功能添加到 iOS 应用程序。为了显示 dropIn 我使用以下方法:
func showDropIn(clientTokenOrTokenizationKey: String) {
let request = BTDropInRequest()
let dropIn = BTDropInController(authorization: clientTokenOrTokenizationKey, request: request)
{ (controller, result, error) in
if (error != nil) {
print("ERROR")
} else if (result?.isCancelled == true) {
print("CANCELLED")
} else if let result = result {
let paymentMethod = result.paymentMethod!.nonce
self.paymentNonce = paymentMethod
self.paymentLabel.text = result.paymentDescription
print(result.paymentIcon)
}
controller.dismiss(animated: true, completion: nil)
}
self.present(dropIn!, animated: true, completion: nil)
}
在用户选择特定付款方式后,我想做的是在屏幕上同时显示说明 ("ending in XX") 和卡的图标。我对描述没有问题,但我不知道如何让卡片图标显示。
下一行:
print(result.paymentIcon)
returns 以下:
<BTUIKMasterCardVectorArtView: 0x7fd04ad15280; frame = (0 0; 0 0); opaque = NO; layer = <CALayer: 0x600000230c20>>
根据文档,result.paymentIcon 是一个 UIView。
@property(readonly, nonatomic) UIView *_Nonnull paymentIcon;
A UIView (BTUIKPaymentOptionCardView) that represents the payment option
我试过设置 UIView,然后将 paymentIcon 添加为子视图,但我仍然无法显示它。
let paymentIcon = result.paymentIcon
self.iconView.addSubview(paymentIcon)
您可以使用 BTUIKViewUtil.vectorArtView
方法检索图像并在 UIImageView
中显示,如下所示:
let size = CGSize(width: WIDTH_HERE, height: HEIGHT_HERE)
let imageView = UIImageView(frame: CGRect(origin: .zero, size: size))
imageView.image = BTUIKViewUtil.vectorArtView(for: result.paymentOptionType).image(of: size)
示例 2,使用 paymentIcon
视图:
let view = result.paymentIcon as? BTUIKVectorArtView
imageView.image = view?.image(of: size)