我刚刚使用 - (instancetype)initWithCoder:(NSCoder *)aDecoder.
恢复了一些UIImageView对象但是我尝试将它们添加回我的视图中,我什么都没看到。使用NSCoding保存时,UIImageView是否会丢失分配给它的帧和图像?
答案 0 :(得分:1)
UIImageView
符合NSCoding
和UIView
,因此在您的UIImageView
及其子视图及其属性之间,除了实际UIImage
之外,所有内容都可能符合NSCoding {1}}。
您需要单独编码,如:
[encoder encodeObject:UIImagePNGRepresentation(self.image) forKey:@"image"];
并检索它:
self.image = [UIImage imageWithData:[decoder decodeObjectForKey:@"image"]];
然后将其设置为图像视图。
编辑发布OP评论:
框架基于父坐标系,在添加视图之前没有父级。如果你有一个子类,你可以覆盖编码方法并自己存储框架,尽管它可能不会基于父视图而处于正确的位置。