iOS Looping Image Slideshow - PullRequest
       20

iOS Looping Image Slideshow

0 голосов
/ 23 октября 2011

У меня есть около 30 изображений. Я хочу запустить слайд-шоу этих изображений без вмешательства пользователя. Основные требования -

  1. image1 fadesIn, отображается в течение 20 секунд, image1 fadesOut - image2 FadesIn и т. Д. Все это происходит автоматически. Нет вмешательства пользователя.
  2. Также, когда мы дойдем до последнего изображения, image20. Слайд-шоу возвращается к первому изображению.
  3. Это слайд-шоу может содержать и другие элементы, такие как UILabel. Так что это просто не слайдшоу изображений.

Моя самая большая проблема заключается в том, как объединить 20 изображений в эту анимацию постепенного исчезновения / исчезновения? Как нам это сделать в iOS?

Ответы [ 3 ]

2 голосов
/ 27 января 2013

Я разработал небольшой фреймворк, который делает именно это, не стесняйтесь его использовать: https://github.com/kirualex/KASlideShow

2 голосов
/ 23 октября 2011

Вы можете использовать UIView, содержащий различные UIImageView для каждого изображения, которое вы должны показать в своем слайд-шоу, и создать вложенный блок анимации. Примерно так:

[UIView animateWithDuration:1.0 
                 animations:^{ /* animations */ } 
                 completion:^(BOOL finished){ [UIView animateWithDuration:1.0 
                                                               animations:^{ /* animations */ } 
                                                               completion:^(BOOL finished){ [UIView animateWithDuration:1.0 
                                                                                                             animations:^{ /* animations */ } 
                                                                                                             completion:^(BOOL finished){}]; }]; }];
1 голос
/ 07 мая 2014

Код Kirualex действительно приятный, чистый и простой в реализации, спасибо.если кто-то хочет остановить переход, коснувшись экрана, при включенном автоматическом слайде я добавил логическое свойство addTouchStop в KASlideShow.h и следующие методы в KASlideShow.m.внутри основного viewController установите это логическое свойство true.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (addTouchStop) {

    [self stop];
}
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    if (addTouchStop) {
    [self start];
}
}
...