SiriKit Intents UI - 支付域 - 中心区域重复三次

时间:2017-12-13 12:17:50

标签: swift swift3 siri sirikit

我正在将SiriKit用于付款域,当用户说"将10美元发送给Ronoldo "时,会显示我的自定义用户界面。
虽然我的自定义视图中只有一个标签,但SiriKit显示的是IntentsUI,因为它有三个相同的标签,如下图所示。
我认为我的观点重复了3次。你能帮忙吗?

Label with text "Kat..." is repeated as three times

2 个答案:

答案 0 :(得分:1)

最后我解决了这个问题。我的自定义Siri UI符合INUIHostedViewControlling协议,它定义了 configureView 函数来提供自定义界面。对于我的视图控制器,每个参数都会多次调用,我检查了正确的参数并仅返回控制器的视图大小一次。

希望这有助于某人。

       func configureView(for parameters: Set<INParameter>, of interaction: INInteraction, interactiveBehavior: INUIInteractiveBehavior, context: INUIHostedViewContext, completion: @escaping (Bool, Set<INParameter>, CGSize) -> Void) {

                //.... other codes....

                if (parameters.count > 0) {
                        let startIntentDescriptionParameter = INParameter(for: INSendPaymentIntent.self,
                                                                          keyPath: "currencyAmount")

                        if parameters.contains(startIntentDescriptionParameter) {
                            return completion(true, parameters, self.desiredSize)
                        }
                    }

               return completion(false, parameters, CGSize.zero)

        }

答案 1 :(得分:0)

我在我的一个项目中遇到了同样的问题。我使用了以下方法而不是configureView函数来提供自定义界面。

func configure(with interaction: INInteraction!, context: INUIHostedViewContext, completion: ((CGSize) -> Void)!) {
    // your code....
     completion(self.desiredSize)

  }

并且通过使用这种方法我的问题得到了解决,我希望它也适用于你。