在inputAccessoryView中,UITextView在推送动画期间不显示内容

时间:2016-10-29 10:22:48

标签: ios swift

UIViewController覆盖了inputAccessoryView自定义UITextView,让我们调用该视图控制器A.我还有另一个视图控制器将A推送到导航堆栈。

所以,当我第一次按下A时一切正常 - UITextView立即显示文字。奇怪的是从下一次推送开始 - UITextView的文本在视图控制器推送过渡动画结束之前不会出现。

During animation => Animation completed

viewController A的代码在那里:

class NextViewController: UIViewController {

    private var userInputView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.grayColor()

        let textView = UITextView(frame: CGRect(origin: .zero,
            size: CGSize(width: 200, height: 30)
        ), textContainer: nil)
        textView.text = "asd"

        userInputView = textView
    }

    override var inputAccessoryView: UIView? {
        return userInputView
    }

    override func canBecomeFirstResponder() -> Bool {
        return true
    }

}

在iOS 9.3模拟器中测试。

经过一些编码后,我注意到如果inputAccessoryView未被释放(存储在全局范围内的某处),则动画中的外观由最后UITextView状态定义。但这个解决方案对我不好实际上是好的。但是,有没有任何类似本机的解决方案,我错过了什么?因为在我看来,期望的行为是相当标准的。

1 个答案:

答案 0 :(得分:0)

所以我会坚持使用存储inputAccessoryView的解决方案直到下一次出现。