【问题标题】:UITextView's not displaying content during push animation when is in inputAccessoryView在 inputAccessoryView 中时,UITextView 在推送动画期间不显示内容
【发布时间】:2016-10-29 10:22:47
【问题描述】:

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

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

=>

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 状态定义。但是这个解决方案对我不好实际上是可以的。但是有没有类似原生的解决方案,我错过了什么吗?因为在我看来,期望的行为是相当标准的。

【问题讨论】:

    标签: ios swift


    【解决方案1】:

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

    【讨论】:

    • 我有同样的奇怪行为,即不显示文本。你是怎么解决这个问题的?
    猜你喜欢
    • 2016-01-24
    • 2011-08-13
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    相关资源
    最近更新 更多