Извините за грязное название, я просто не знаю, как деликатно описать проблему.
Я пишу приложение, похожее на альбом, чтобы отображать кучу изображений в моем просмотре прокрутки и что-то делать при касании изображения.
Я следовал за этим вопросом: как я могу обнаружить событие касания UIImageView и использовать кнопку с фоновым изображением для обработки события касания.
Мой оригинальный метод заключается в использовании NSOperation для одновременного извлечения изображения из Интернета и добавления его в режим просмотра изображений и добавления к моему просмотру прокрутки, и скорость вполне приемлема, поскольку каждый просмотр изображений отображается сразу после каждого обратного вызова NSOperation.
Затем я изменяю imageview на uibutton, странная вещь в том, что при обратном вызове NSOperation эта кнопка не отображается в моем представлении. Они появляются сразу, когда все обратные вызовы NSOperation сделаны. Это делает работу пользователя неприемлемой.
Это моя функция обратного вызова NSOperation, она пропустит кнопку, содержащую изображение, извлеченное из Интернета
- (void)imageLoaded:(UIButton*)button;
{
NSLog(@"Done");
[button addTarget:self action:@selector(buttonPressed:)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
Кнопки будут отображаться только после того, как появятся последние «Готово» вместо одной за другой, это нормально? или я что то напутал?
==== update ========
Я думаю, что я запускаю NSOperation на моем контроллере представления. У меня есть класс imageLoadOperation, я передам ему свой viewcontroller
imageLoadOperation *ilo = [[imageLoadOperation alloc] initWithURLString:[NSString stringWithFormat:@"link for the image"];
[ilo setParent:self];
[queue addOperation:ilo];
[ilo release];
А в основной функции imageLoadOperation я сделаю
[parentViewController performSelectorOnMainThread:@selector(imageLoaded:) withObject:button waitUntilDone:NO];
Вы хотите сказать, что мне нужно перенести этот код в мой AppDelegate вместо того, чтобы запускать его в моем viewcontrollor?