Как получить несколько копий UIView, загруженных из пера? - PullRequest
3 голосов
/ 07 мая 2010

Я хочу использовать иерархию UIView несколько раз (объект пера является шаблоном). К сожалению, UIView не соответствует , поэтому

[cell.contentView addSubview: [[templEditCellView copy] autorelease]];

не работает.

Я не был удивлен, так как я хочу глубокую копию иерархии представления.

В настоящее время представление является одним из нескольких объектов верхнего уровня в перо, из которого оно загружено. Есть ли способ перезагрузить один указанный объект верхнего уровня из пера? Должен ли я разделить представление на один NIB, который может быть перезагружен по требованию? Или есть другой способ сделать глубокую копию представления?

Спасибо!

Ответы [ 3 ]

7 голосов
/ 08 мая 2010

Самый простой способ сделать глубокую копию представления - это заархивировать и разархивировать его.

id copyOfAView = 
  [NSUnarchiver unarchiveObjectWithData:
    [NSArchiver archivedDataWithRootObject:aView]]; 

Помещение представления в собственное перо также работает.Вы можете создать NSNib объект и перезагрузить его столько раз, сколько захотите.

2 голосов
/ 07 мая 2010

Вы не можете загрузить его непосредственно в представление содержимого ячейки, но вы можете создать класс с выходами для представлений и загрузить его с помощью

[[NSBundle mainBundle] loadNibNamed:@"TheNib" owner:anObject options:nil];

Существует больше информации о SO и сети о загрузке ячеек табличного представления из перьев. Мне действительно нравится подход Билла Дадни , но метод, описанный Джеффом Ламаршем , проще и отлично подходит для многих ситуаций.

1 голос
/ 07 мая 2010

Кажется, в данный момент это работает хорошо для того, что мне нужно:

if (! templEditCellView) {
  [[NSBundle mainBundle] loadNibNamed:@"TextEditCellView" owner:self options:nil];
  if (! templEditCellView) {
    abort(); // !!
  }
}
[cell.contentView addSubview: templEditCellView];
templEditCellView = nil;

В этом случае контроллер таблицы размещает одну и ту же настраиваемую иерархию представлений в содержимом каждой ячейки.

Мне бы очень хотелось увидеть подход, который не умножает nib-файлы, если у меня много разных настроек ячеек (как я мог бы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...