UIView
соответствует NSCoding
, что означает, что вы можете сериализовать и десериализовать его.Именно так работают файлы nib.Во-первых, см. Руководство по программированию архивов и сериализаций .
Один простой способ сериализации UIView
выглядит следующим образом:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:view]
Затем можно написать1011 * любым удобным способом.
Чтобы десериализовать представление, используйте это:
UIView *view = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Это создаст новую копию всей иерархии представления.
Обратите внимание, что UIView
только сериализует свои собственные свойства.Если вы подкласс UIView
и хотите сериализовать дополнительные свойства, вам нужно переопределить encodeWithCoder:
и initWithCoder:
, чтобы добавить свои свойства.Это подробно описано в Объекты кодирования и декодирования .