Swift 设置暗色调对Braintree iOS v4 SDK没有影响

Swift 设置暗色调对Braintree iOS v4 SDK没有影响,swift,braintree,Swift,Braintree,文件中明确指出,可以轻松完成: 我确实可以将primaryTextColor自定义为红色 这是一个屏幕截图,它表明红色起作用,但不是暗色: 这是我在UIViewController中的代码: override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) showDropIn(clientTokenOrTokenizationKey: clientToken)

文件中明确指出,可以轻松完成:

我确实可以将primaryTextColor自定义为红色

这是一个屏幕截图,它表明红色起作用,但不是暗色:

这是我在UIViewController中的代码:

 override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        showDropIn(clientTokenOrTokenizationKey: clientToken)
    }

    func showDropIn(clientTokenOrTokenizationKey: String) {
        BTUIKAppearance.darkTheme()
        BTUIKAppearance.sharedInstance().primaryTextColor = UIColor.red

        let request =  BTDropInRequest()
        request.vaultManager = true

        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 {
                // Use the BTDropInResult properties to update your UI
                // result.paymentOptionType
                // result.paymentMethod
                // result.paymentIcon
                // result.paymentDescription
            }
            controller.dismiss(animated: true, completion: nil)
        }
        self.present(dropIn!, animated: true, completion: nil)
    }
所以Braintree的有点糟糕

这条指令对我来说是误导性的:“要使用黑暗主题,请在初始化Drop-in之前调用此方法”。然而,在设置暗色调之前,您必须初始化或实例化drop-in

说明最好是这样的:“若要使用黑暗主题,请在显示插入之前调用此方法”

这是我的工作代码:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    showDropIn(clientTokenOrTokenizationKey: clientToken)
}

func showDropIn(clientTokenOrTokenizationKey: String) {
    let request =  BTDropInRequest()
    request.vaultManager = true

    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 {
            // Use the BTDropInResult properties to update your UI
            // result.paymentOptionType
            // result.paymentMethod
            // result.paymentIcon
            // result.paymentDescription
        }
        controller.dismiss(animated: true, completion: nil)
    }

    BTUIKAppearance.darkTheme()
    BTUIKAppearance.sharedInstance()?.primaryTextColor = UIColor.lightGray
    self.present(dropIn!, animated: true, completion: nil)
}