UITextView stange粘贴操作动画故障(iOS11)

UITextView stange粘贴操作动画故障(iOS11),ios,objective-c,swift,uikit,uitextview,Ios,Objective C,Swift,Uikit,Uitextview,我正面临一个非常奇怪的错误。当我在UITextView中粘贴任何内容时,我会收到一个令人惊讶的动画小故障 为了重现它,我刚刚创建了一个黑色的.xcodeproj,通过故事板将UITextView添加到ViewController,并运行了该应用程序 我发现的唯一类似的问题是 它说这是iOS11中的UIKit的一个bug。但是,我的iPhone上有很多应用程序都带有UITextview,可以在iOS11上正常工作。 你可以在这里的视频中看到bug—— 如有任何建议或帮助,将不胜感激。 我试过什么?

我正面临一个非常奇怪的错误。当我在
UITextView
中粘贴任何内容时,我会收到一个令人惊讶的动画小故障

为了重现它,我刚刚创建了一个黑色的
.xcodeproj
,通过故事板将
UITextView
添加到
ViewController
,并运行了该应用程序

我发现的唯一类似的问题是 它说这是iOS11中的
UIKit
的一个bug。但是,我的iPhone上有很多应用程序都带有
UITextview
,可以在iOS11上正常工作。 你可以在这里的视频中看到bug——

如有任何建议或帮助,将不胜感激。 我试过什么? -尝试了新的clear项目,但改动很少; -禁用所有自动更正类型; -消除限制; -在几种不同版本的iPhone上试用过–11.2.5和11.4.2

原始项目见附件。它是在
swift4.1
Xcode 9.4(9F1027a)

我检查了iPhone上的一些其他应用程序,比如
Todoist
,发现了同样的bug。但我也找到了解决办法。 我希望苹果能尽快修复这个错误

因此,您可以实现
UITextPasteDelegate
,并禁用粘贴时的动画操作。此API仅在iOS11+上可用,但该错误似乎也仅在iOS11上重现

class ViewController: UIViewController {

    @IBOutlet weak var textView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()
        textView.pasteDelegate = self
    }
}

extension ViewController: UITextPasteDelegate {
    func textPasteConfigurationSupporting(_ textPasteConfigurationSupporting: UITextPasteConfigurationSupporting, shouldAnimatePasteOf attributedString: NSAttributedString, to textRange: UITextRange) -> Bool {
        return false
    }
}

非常感谢你找到这个。这个问题已经让我疯狂了一段时间。在我的测试中(在意识到UITextPasteDelegate选项的存在之前),与UITextView更复杂的用例(支持键盘外观大小调整、响应文本事件等)相比,使用标准UITextView时,动画似乎更正常。我仍然想知道不正确动画的根本原因是某个地方缺少超级调用,这导致iOS为动画拍摄快照时出现问题。@sole我也很想知道。我将继续监视新的iOS版本。希望在bug修复后不要忘记写回这里。我在iOS 12中也看到了。想知道这是我这边的问题还是UIKitt中的bug这个问题在iOS 13中得到了解决,但在较低版本中仍然存在。感谢这个令人惊奇的解决方案!