是否有任何简单的方法可以将现有的 UI 控件属性从一个复制到另一个?就像是
*button1 = *button2;
我知道上述方法行不通,但只是好奇。
是的,是的,我知道可以使用带有 UIControl 视图的 XIB 并以这种方式创建控件。
虽然有一些方法可以复制视图层次结构,但它们很老套,应该避免。
在大多数情况下,NSKeyedArchiver 和 NSKeyedUnarchiver 对我来说效果很好。不过,我从未尝试过克隆具有复杂结构的控件。
extension UIView {
func deepCopy() -> UIView {
let data = NSKeyedArchiver.archivedDataWithRootObject(self)
let copy = NSKeyedUnarchiver.unarchiveObjectWithData(data)! as! UIView
return copy
}
}