以编程方式拨号后无法同时满足约束条件

时间:2016-07-02 14:15:34

标签: ios autolayout

我制作了一个简单的应用,其中包含用户可以拨打号码的视图。它包含标签,文本视图和按钮。它们垂直包含在堆栈视图中。总共有三(3)个约束:

  1. 垂直居中堆栈视图
  2. 水平居中堆栈视图
  3. 使文本视图的内容等于堆栈视图的内容
  4. 按下按钮时,使用以下代码调用textview中的数字:

    let phoneNumber = "telprompt:\(numberToDial)"
    UIApplication.sharedApplication().openURL(NSURL(string: phoneNumber)!)
    

    一旦系统电话呼叫屏幕出现,我就会收到自动布局错误,我觉得我没有任何关系。下面的两个自动布局约束是导致错误的原因:

    (
    "<NSLayoutConstraint:0x10187a9b0 V:|-(20)-[UIInputSetContainerView:0x101878f10]   (Names: '|':UITextEffectsWindow:0x1018765c0 )>",
    "<NSLayoutConstraint:0x1007b21a0 'UIInputWindowController-top' V:|-(0)-[UIInputSetContainerView:0x101878f10]   (Names:'|':UITextEffectsWindow:0x1018765c0 )>"
    )
    

    为什么我会收到这些错误?该应用程序的工作方式与我想要的完全一样,我只是得到了这些我不喜欢的错误。

    编辑: 这与状态栏不同。我发现它并将该代码添加到我的app委托,但我仍然收到此错误。此代码位于我的应用代理中:

    func application(application: UIApplication, willChangeStatusBarFrame    newStatusBarFrame: CGRect) {
        for window in UIApplication.sharedApplication().windows {
            if window.dynamicType.self.description().containsString("UITextEffectsWindow") {
                window.removeConstraints(window.constraints)
            }
        }
    }
    

    EDIT2: 我忘了写这个调用的视图在UITabBarController里面。

0 个答案:

没有答案