Я пытаюсь создать горизонтальный вид прокрутки. Каждый вид содержит одно изображение. [done]
Изначально, когда приложение открывалось, я отображал пару изображений, т.е. 3, чтобы пользователь мог прокручивать изображения между изображениями. [done]
Однако я хочу иметь возможность перейти к другому контроллеру представления и выбрать другое (ые) изображение (я), например, два, и отобразить пять изображений в виде прокрутки вместо первоначального отображения 3.
Как можно это сделать? «обновить» начальный вид прокрутки?
Обновление
Должен ли я использовать делегат для этой связи между контроллерами представления? или как это сделать?
1 основной контроллер, другой, содержащий выбор изображения?
Эта часть выше и многое другое объяснено статьей здесь . (Не реклама, надеюсь, это кому-то тоже поможет).
Часть 1 обновления щедрости :
Думаю, теперь, когда я нашел способ обойтись с делегатами, у меня появился дополнительный вопрос, на который я не могу найти ответ, все примеры, которые я видел, касались обновления табличных представлений.
Баунти часть 2 :
Если бы у меня был вид прокрутки в контроллере моего представления и несколько изображений внутри прокрутки. т.е.:
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray *images = ...some images array;
for (int i = 0; i < images.count; i++) {
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
UIImageView *subview = [[UIImageView alloc] initWithFrame:frame];
subview.image = [images objectAtIndex:i];
[self.scrollView addSubview:subview];
}
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * images.count, self.scrollView.frame.size.height);
}
И скажем, в моем контроллере представления реализован какой-то метод делегата didAddImage
или didRemoveImage
.
Это означает, что массив images
будет обновлен.
Фактический вопрос о вознаграждении:
Как бы на самом деле "сказать" контроллеру представления, О.К. теперь у вашего прокрутки есть еще одно изображение для отображения, пожалуйста, обновите или перезагрузите?
Если бы у меня было табличное представление вместо прокрутки и вставка изображений, я бы сделал это примерно так (в моем методе делегата):
-(void) mockDelegatetablemethod:(...) ...{
[self.images addObject:image];
NSIndexPath *indexPath =
[NSIndexPath indexPathForRow:[self.images count] - 1
inSection:0];
[self.tableView insertRowsAtIndexPaths:
[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationAutomatic];
[self dismissViewControllerAnimated:YES completion:nil];
}
Как можно поступить с прокруткой?
Обновление Bounty, часть 3:
Это «простой» случай, описанный выше, естественно, мне придется поддерживать удаление изображений также, как если бы вы захотели удалить все изображения и добавить новые.