Как мне программно дублировать встроенные в конструктор интерфейсов UIViews? - PullRequest
3 голосов
/ 11 июня 2010

Я хочу создать подчиненный UIView в Интерфейсном Разработчике (содержащийся в UIScrollView) с некоторыми содержащимися UILabels, затем я хочу программно «скопировать» это представление, отрегулировать его левое положение (кратное его ширине) для достижения«плавающий» левый эффект внутри UIScrollView.Затем я хочу добавить этот скопированный UIView обратно в UIScrollView с другим текстом для UILabels.

Проблема в том, что я не знаю, как и если вы можете "скопировать" UIViews.

Ответы [ 2 ]

3 голосов
/ 11 июня 2010

Вы можете попробовать позвонить [просмотреть копию], но я не удивлюсь, если это не сработало.Вероятно, вы можете использовать NSKeyedArchiver / NSKeyedUnarchiver для сериализации / десериализации представления, но это также довольно ужасно.

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

  1. Переместитепросмотрите несколько копий в собственное перо.
  2. Сделайте перо "принадлежащим" вашему объекту (независимо от того, какой класс вы хотите нести за его загрузку).
  3. Добавьте IBOutlet с именем "myView "или что-то еще, и назначьте его вашему представлению.
  4. В вашем классе вызовите что-то вроде:

-(UIView)makeMeANewMyView {
  // Load MyView.nib into the myView outlet.
  [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self];
  // Take ownership.
  UIView * view = [[self.myView retain] autorelease];
  self.myView = nil;
  return view;
}
2 голосов
/ 11 июня 2010

Я очень новичок в программировании на уровне c (и вообще программировании).Одна из вещей, которую мне было трудно запомнить, это то, что каждый раз, когда вы хотите «скопировать» что-то в несколько мест, это, вероятно, означает, что вам нужно создать подкласс чего-то, а затем добавить новые экземпляры вашего пользовательского подкласса.В этом случае я думаю, что вы захотите создать подкласс UIView, а затем использовать этот пользовательский вид по мере необходимости?

Обратите внимание, что я публикую этот совет для того, что он стоит ... Я полный нубк цели-просто убить время, ожидая помощи с одним из моих собственных вопросов!

...