Добавить несколько изображений в том же UIImageView и изменять их при каждом нажатии
Я пытаюсь реализовать UIImageView, который показывает разные.png (организованный в NSArray) при каждом нажатии. Когда тап достигнет последнего.png, следующий тап покажет первый.png и так далее. Я нашел здесь старый ответ: добавьте 4 изображения в режиме просмотра изображений и измените изображение жестом касания или пролистывания, который, кажется, идет в правильном направлении. Тем не менее, он не представляется применимым в новом XCode, и больше нет возможности запрашивать разъяснения или обновления, так как тема была закрыта. У кого-нибудь есть идея о том, как создать подкласс всего ImageView, чтобы получить ожидаемый результат?
1 ответ
Решение было намного проще, чем я думал.
Так как пользовательское значение для селектора не может быть передано так, как я просил, я создал вспомогательное свойство, которое содержит индекс отображаемого в данный момент изображения, увеличивает его при каждом нажатии и задает изображение соответствующим образом.
@interface YourViewController ()
@property (nonatomic, strong) NSArray *images;
@property (nonatomic, assign) NSInteger currentImageIndex;
@end
@implementation YourViewController
- (void)viewDidLoad {
// Here you fill your images array
self.images = ...
// Set currentImageIndex to 0 and display first image
self.currentImageIndex = 0;
[self displayImageWithIndex:self.currentImageIndex];
// Additional code, like your button target/action
}
- (void)myButtonWasTapped:(id)sender
{
if(self.currentImageIndex + 1 < [self.images count]) {
self.currentImageIndex++;
} else {
self.currentImageIndex = 0;
}
[self displayImageWithIndex: self.currentImageIndex];
}
- (void)displayImageWithIndex:(NSInteger)index {
self.imageView.image = [self.images objectAtIndex:index];
}
@end
Обратите внимание: может быть, к этому лучше подходить, но это то, что сработало в моем случае. Надеюсь, это может быть полезно.