2013-03-07 57 views
0

是否有任何简单的方法将现有的UI控件属性从一个复制到另一个?像ios UIkit复制UIControl

*button1 = *button2; 

我知道上述不会工作,但只是好奇。

是的,是的,我知道可以使用带有UIControl视图的XIB并通过这种方式创建控件。

+1

尝试使用属性的直接复制。 button1.frame = button2.frame;等等。 – Yanny 2013-03-07 20:02:14

+0

是的,可以做到这一点,正在寻找一个班轮。 – ort11 2013-03-08 14:58:05

回答

1

虽然有许多方法可以复制视图层次结构,但它们很难做,应该避免。

+0

我只想复制一个按钮的属性。我想这个问题太多了。 – ort11 2013-03-08 14:57:35

+0

你可以随时写一个帮助函数,如: 'UIButton * CopyButton(UIButton * button){UButton * copy = [[UIButton alloc] initWithFrame:button.frame]; copy.property1 = button.property1; copy.property2 = button.property2; return copy; }' – 2013-03-08 15:52:22

+0

你不得不原谅我不太理解迷你降价...... – 2013-03-08 15:54:48

0

NSKeyedArchiver & NSKeyedUnarchiver在大多数情况下适用于我。我从来没有尝试克隆具有复杂结构的控件。

extension UIView { 
    func deepCopy() -> UIView { 

     let data = NSKeyedArchiver.archivedDataWithRootObject(self) 
     let copy = NSKeyedUnarchiver.unarchiveObjectWithData(data)! as! UIView 

     return copy 
    } 
}