我想创建 a 的副本,但UIView
我不想使用NSKeyedArchiver
,因为我经常创建许多视图的副本,并且使用NSKeyedArchiver
速度很慢。
我听说过copy
or initWithZone:
,但谷歌搜索它发现它并不适合UIView
。我不想要指向原始视图的副本,因为对其所做的任何更改也会对复制的UIView
.
您可以使用以下方法复制视图:
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
}