Я пытаюсь сделать слайд-шоу, похожее на анимацию, на домашней странице моего приложения. Изображение появляется в правильном представлении пользовательского интерфейса, но никогда не переходит на другую фотографию.
РЕДАКТИРОВАТЬ: Попытка установить изображение перед переходом:
- (void)viewDidLoad {
[super viewDidLoad];
/*set image before transition */
_slideShow.image = [UIImage imageNamed:@"Slide Show"];
[self fetchSpecies];
[self beginSlideShow];
}
- (void) beginSlideShow{
NSLog(@"Called");
if([imageUrls_ count] < 1){
NSLog(@"EMPTY");
return;
}
[UIView transitionWithView:_slideShow duration:0.2 options: UIViewAnimationOptionTransitionCrossDissolve animations:^{
int index = arc4random() % [imageUrls_ count];
_slideShow.image = [self getImage:index];
// Account for the case where some images just aren't there
while (_slideShow.image == nil) {
index = arc4random() % [imageUrls_ count];
_slideShow.image = [self getImage:index];
}
} completion:^(BOOL finished) {
if (finished){
//logic
}
}];
}
- (void) fetchSpecies{
NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:@ "Species"];
NSError* error = nil;
NSManagedObjectContext* context = [(LeafletAppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSArray* species = [context executeFetchRequest:request error:&error];
if (!species || error) { // nil is an error
NSLog(@"error");
// handle error
}
// Get all the image urls and description to use for the random images
imageUrls_ = [[NSMutableArray arrayWithCapacity:100] retain];
imageDescs_ = [[NSMutableArray arrayWithCapacity:100] retain];
NSString *url;
NSString *name;
for (Species *s in species) {
name = [NSString stringWithFormat:@"%@", [s commonNameFirstLast]];
url = [s.ExampleImageLeaf pathForLocalImageUsingThumbnail:YES];
if (url) {
[imageUrls_ addObject:url];
[imageDescs_ addObject:[NSString stringWithFormat:@"%@", name]];
}
url = [s.ExampleImageFlower pathForLocalImageUsingThumbnail:YES];
if (url) {
[imageUrls_ addObject:url];
[imageDescs_ addObject:[NSString stringWithFormat:@"%@", name]];
}
url = [s.ExampleImageFruit pathForLocalImageUsingThumbnail:YES];
if (url) {
[imageUrls_ addObject:url];
[imageDescs_ addObject:[NSString stringWithFormat:@"%@", name]];
}
}
}
- (UIImage *) getImage:(NSUInteger)index
{
// NSLog(@"empty");
NSString *url = [imageUrls_ objectAtIndex:index];
return [UIImage imageWithContentsOfFile:url];
}
Я проверил, и imageUrls имеет 660 элементов, так что это не проблема нехватки фотографий. Я был бы очень признателен за любые идеи/предложения, я очень новичок в iOS.