NSCoding和恢复视图

时间:2015-10-23 12:11:13

标签: ios uiview nscoding

我刚刚使用 - (instancetype)initWithCoder:(NSCoder *)aDecoder.恢复了一些UIImageView对象但是我尝试将它们添加回我的视图中,我什么都没看到。使用NSCoding保存时,UIImageView是否会丢失分配给它的帧和图像?

1 个答案:

答案 0 :(得分:1)

UIImageView符合NSCodingUIView,因此在您的UIImageView及其子视图及其属性之间,除了实际UIImage之外,所有内容都可能符合NSCoding {1}}。

您需要单独编码,如:

[encoder encodeObject:UIImagePNGRepresentation(self.image) forKey:@"image"];

并检索它:

self.image = [UIImage imageWithData:[decoder decodeObjectForKey:@"image"]];

然后将其设置为图像视图。

编辑发布OP评论:

框架基于父坐标系,在添加视图之前没有父级。如果你有一个子类,你可以覆盖编码方法并自己存储框架,尽管它可能不会基于父视图而处于正确的位置。