Я загружаю представление из файла пера, используя:
NSArray *nibViews = [[NSBundle mainBundle] loadNibNamed:@"AnalysisView" owner:self options:nil];
AnalysisView *gridView = [nibViews objectAtIndex: 0];
Перо содержит представление прокрутки с именем gridScrollView, а в файле реализации AnalysisView у меня есть метод, который добавляет представления в качестве подпредставлений к просмотру прокрутки:
for (NSInteger i = [results count] -1; i >= 0; i--)
{
Result *result = [results objectAtIndex:i];
[self loadResult: result];
}
- (void) loadResult: (Result *) result
{
NSArray *nibViews = [[NSBundle mainBundle] loadNibNamed:@"GridView" owner:self options:nil];
GridView *gridView = [nibViews objectAtIndex: 0];
gridView.tag = self.graphCount;
CGRect gridFrame = gridView.frame;
CGFloat yOffset = gridFrame.size.height * self.graphCount;
gridView.frame = CGRectMake(0, yOffset, gridFrame.size.width, gridFrame.size.height);
[self.gridScrollView addSubview: gridView];
self.gridScrollView.contentSize = CGSizeMake(self.gridScrollView.frame.size.width, (yOffset + gridFrame.size.height));
self.graphCount++;
}
Я установил делегатом scrollviews значение AnalysisView и подключил метод decelaring
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"%d", [scrollView.subviews count]);
}
. Когда срабатывает метод scrollViewDidEndDecelerating, он сообщает, что количество подпредставлений равно 5. 3 из этих подпредставлений являются GridView, как я и ожидал. Однако есть 2 UIImageView, и я понятия не имею, почему они там.
Это проблема, потому что я намереваюсь получить представления с помощью viewWithTag в методе scrollViewDidEndDecelerating и вызвать метод для представления, однако всякий раз, когда я пытаюсь получить представление с тегом 0, я извлекаю один из UIImageView, и это приводит к сбою моего приложения, потому что метод не может быть вызван в представлении изображения.
Я знаю способ обойти это - сохранить мои GridViews в отдельном массиве экземпляров и ссылаться на них оттуда. Но мне любопытно узнать, что такое 2 UIImageView и как они туда попали.