Я ослеп в Google и не смог найти то, что ищу. Я новичок в XCode и Objective-C, но продвигаюсь довольно быстро... однако...
Если я использую раскадровки в приложении singleView и вручную добавляю UIViews в эту раскадровку (скажем, представляя изображения, которые я собираюсь перетаскивать), как мне получить эти UIViews в массив, чтобы я мог прокручивать их программно? Теперь я смог создать подвиды с помощью кода, а затем добавить их в массив просто отлично, но если я сначала создам подпредставления в раскадровке (что упрощает разработку общего макета), а затем попытаюсь добавить эти UIViews раскадровки к массиву, этот массив оказывается пустым с позициями X и Y, равными 0.
Мое первое предположение состоит в том, что экземпляры UIViews, созданные в раскадровке, не создаются во время выполнения ViewDidLoad (где я пытаюсь заполнить массив), но я не уверен. Моя цель - иметь возможность размещать эти UIViews в соответствующих местах визуально из макета раскадровки, а затем добавлять эти UIViews в массив во время запуска приложения, сохраняя их начальные местоположения на экране и т. д.
//
Хорошо, благодаря ссылке Эндрю на IBOutletCollections, я, наконец, получил свои UIViews, хранящиеся в массиве при запуске приложения, однако их представленные местоположения кадров NSLog'ируются в {0,0} в консоли, хотя они находятся в другом месте на раскадровке. . У меня есть метод Init, вызываемый из ViewDidLoad, который выглядит следующим образом:
- (void)initialize {
dragViews = [NSArray arrayWithObjects: dragView1, dragView2, dragView3, nil];
dragTargets = [NSArray arrayWithObjects: dragTarget1, dragTarget2, dragTarget3, nil];
NSLog(@"arrayImages contains %d items. Contents = %@",[dragViews count], dragViews);
NSLog(@"arrayTarget contains %d items. Contents = %@",[dragTargets count], dragTargets);
int i;
int count = [dragViews count];
for (i = 0; i < count; i++) {
UIView *currentView = [dragViews objectAtIndex:i];
NSLog (@"My view's center is: %@\n", NSStringFromCGRect(currentView.frame));
}
}
Но моя консоль неправильно отображает их текущее местоположение:
2013-02-15 10:43:09.538 dragAssign[4869:11303] arrayImages contains 3 items. Contents = (
"<UIImageView: 0x92066b0; frame = (0 0; 0 0); autoresize = TM+BM; layer = <CALayer: 0x9206710>>",
"<UIImageView: 0x9006510; frame = (0 0; 0 0); autoresize = TM+BM; layer = <CALayer: 0x9006570>>",
"<UIImageView: 0x90065a0; frame = (0 0; 0 0); autoresize = TM+BM; layer = <CALayer: 0x9006600>>"
)
2013-02-15 10:43:09.545 dragAssign[4869:11303] arrayTarget contains 3 items. Contents = (
"<UIView: 0x92062a0; frame = (0 0; 0 0); autoresize = TM+BM; layer = <CALayer: 0x9206350>>",
"<UIView: 0x92055d0; frame = (0 0; 0 0); autoresize = TM+BM; layer = <CALayer: 0x92053a0>>",
"<UIView: 0x9206650; frame = (0 0; 0 0); autoresize = TM+BM; layer = <CALayer: 0x92057d0>>"
)
2013-02-15 10:43:09.546 dragAssign[4869:11303] My view's center is: {{0, 0}, {0, 0}}
2013-02-15 10:43:09.546 dragAssign[4869:11303] My view's center is: {{0, 0}, {0, 0}}
2013-02-15 10:43:09.547 dragAssign[4869:11303] My view's center is: {{0, 0}, {0, 0}}
Предложения? Как мне взаимодействовать с этим массивом и получать правильные местоположения кадров? Еще раз большое спасибо Андрею за то, что указал мне правильное направление!