2013-03-07 95 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 
    } 
}