2013-03-07 3 views
0

Есть ли простой способ скопировать существующий атрибут пользовательского интерфейса от одного к другому? Что-то вродеios UIkit copy a UIControl

*button1 = *button2; 

Я знаю, что вышеуказанное не будет работать, но просто любопытно.

Да, я знаю, что я могу использовать XIB с видом с UIControl и создавать элементы управления таким образом.

+1

Попробуйте использовать прямое копирование свойств. button1.frame = button2.frame; и так далее. – Yanny

+0

Да, мог бы это сделать, искал один лайнер. – ort11

ответ

1

Хотя есть способы скопировать иерархии представлений, они хаки и их следует избегать.

+0

Я просто хочу скопировать атрибуты кнопки. Наверное, это слишком много, чтобы спросить. – ort11

+0

вы всегда можете написать для него вспомогательную функцию: 'UIButton * CopyButton (кнопка UIButton *) { UIButton * copy = [[UIButton alloc] initWithFrame: button.frame]; copy.property1 = button.property1; copy.property2 = button.property2; возвратная копия; } ' –

+0

Вы должны извинить меня, не совсем схватив мини-уценку ... –

0

NSKeyedArchiver & NSKeyedUnarchiver хорошо работает для меня в большинстве случаев. Однако я никогда не пытался клонировать элемент управления со сложной структурой.

extension UIView { 
    func deepCopy() -> UIView { 

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

     return copy 
    } 
} 
Смежные вопросы