класс с несколькими XIB или более классов? - PullRequest
0 голосов
/ 17 декабря 2011

в своем приложении я сделал переход от FirstViewController к FormViewController.

[self presentModalViewController:formViewController animated:YES];

в FormViewController Я хочу отобразить четыре изображения, каждый раз, когда пользователь щелкает изображение, я отмечаю номер или название изображения, щелкнувшего в словаре, и отображаю четыре следующих изображения. Итак, есть около 8 комплектов из 4 изображений. Итак, мои вопросы: каждые четыре изображения должны быть показаны в новом классе, или я должен поместить все изображения в FormViewController и использовать .hidden? можно сделать анимацию при смене изображений? не анимация всего вида, только изображения.

Ответы [ 2 ]

1 голос
/ 17 декабря 2011

Я бы использовал один XIB и один класс.Классу нужна какая-то модель данных для хранения списка доступных изображений, ранее выбранных изображений и текущих видимых.

Когда пользователь щелкает изображение, обновляет данные и показывает новые с чем-то вроде этогодля постепенного исчезновения старого изображения и постепенного появления нового.

/* ARC code */

-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
    /* destroy the transition view, set the image first */
    UIImageView *transitionImageView = (UIImageView *)context;
    self.pic.image = transitionImageView.image;
    [transitionImageView removeFromSuperview];
    transitionImageView = nil;
}

- (void)clickHandler:(id)sender {
    /* temporary view for the animation */
    UIImageView *transitionImageView = [[UIImageView alloc] initWithFrame:self.pic.frame];
    transitionImageView.image = <# new UIImage #>;
    transitionImageView.alpha = 0.0f;
    [self.view addSubview:transitionImageView];

    [UIView beginAnimations:@"UpdateImages" context:transitionImageView];
    [UIView setAnimationDuration:2.0f];    
    transitionImageView.alpha = 1.0f;
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];    
    [UIView commitAnimations];
}

Адаптируйте его для своих четырех изображений.

Если вы хотите больше необычных анимаций, у вас может быть два набора по 4 UIImageViews и используйте их для отображения и анимации переходов изображения.

1 голос
/ 17 декабря 2011

вы можете показывать изображения в одном классе, и лично я считаю, что это то, что вы должны сделать, так как вам будет легче управлять кодом, и да, вы можете анимировать изменения изображения.

...