如何以编程方式复制 UIView 并保存 accessibilityId?
How to make copy UIView and save accessibilityId programmatically?
我使用:
extension UIView {
func copyView<T: UIView>() -> T {
return NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: self)) as! T
}
}
但是我的副本丢失了辅助功能标识符。
copyView.accessibilityIdentifier == nil
如何保存?
这似乎是一个 Apple 错误。你真的应该在 Apple Bug Reporter.
上报告这个
也就是说,您可以按如下方式解决此问题:
extension UIView {
func copyView<T: UIView>() -> T {
let copy = NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: self)) as! T
copy.accessibilityIdentifier = accessibilityIdentifier
return copy
}
}
我使用:
extension UIView {
func copyView<T: UIView>() -> T {
return NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: self)) as! T
}
}
但是我的副本丢失了辅助功能标识符。
copyView.accessibilityIdentifier == nil
如何保存?
这似乎是一个 Apple 错误。你真的应该在 Apple Bug Reporter.
上报告这个也就是说,您可以按如下方式解决此问题:
extension UIView {
func copyView<T: UIView>() -> T {
let copy = NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: self)) as! T
copy.accessibilityIdentifier = accessibilityIdentifier
return copy
}
}