如何创建UIImageView实例的副本?

Joh*_*ohn 12 iphone cocoa-touch copy uiimageview

如何创建可以独立于第一个实例操作的UIImageView实例的副本?

我试过UIImageView *tempCopy = [instance copy]但它崩溃了.还有另外一种方法吗?

mvd*_*vds 17

它可能崩溃,因为UIImageView不符合NSCopying协议.所以自己动手:实例化一个新的UIImageView并设置您感兴趣的原始属性.


Mik*_*lah 7

UIImageView不符合NSCopying,但它确实符合NSCoding.存档您的视图,然后将其解压缩以获得全新的副本.

对于懒惰倾斜,这看起来像:

NSData *archive = [NSKeyedArchiver archivedDataWithRootObject:imageView];
UIImageView *copy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Run Code Online (Sandbox Code Playgroud)