Как создать копию uiview (не указатель на оригинальный uiview)

Я хочу создать копию UIViewи я не хочу использовать NSKeyedArchiver потому что я часто создаю копию многих видов и использую NSKeyedArchiver был медленным

Я слышал о copy или же initWithZone:, но гуглил, нашел, что это не хорошо для UIView, Мне не нужна копия, которая указывает на исходный вид, потому что любые изменения, внесенные в него, также будут вносить изменения в скопированный UIView,

2 ответа

Вы можете скопировать вид, используя:

TheView *copyOfView =  (TheView *) [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:origionalTheView]];

Создайте категорию UIView, которая может помочь в копировании представления. Что-то вроде этого:

- (id) copyView {
     UIView *a = [[UIView alloc]init];
     a.frame = self.frame;
     //set all other properties of the UIView
     return a; //return [a autorelease] if not using ARC
}
Другие вопросы по тегам