Я пытаюсь получить мое приложение, чтобы сделать базовое изменение фона с 3 экранов. Вот мой .h файл.Image Changer in iOS
#import <UIKit/UIKit.h>
@class BIDYellowViewController;
@class BIDBlueViewController;
@class BIDGreenViewController;
@interface BIDSwitchViewController : UIViewController
@property (strong, nonatomic) BIDYellowViewController *yellowViewController;
@property (strong, nonatomic) BIDBlueViewController *blueViewController;
@property (strong, nonatomic) BIDGreenViewController *greenViewController;
- (IBAction)switchViews:(id)sender;
@end
и вот мой метод в файле .m, что при нажатии кнопки IBAction, то SuperView будет переходить от одного экрана к другому и по-прежнему в цикле их вращения.
- (IBAction)switchViews:(id)sender {
//animations
[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:1.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
//loads yellow
if (self.yellowViewController.view.superview == nil) {
if (self.yellowViewController == nil) {
self.yellowViewController = [[BIDYellowViewController alloc]initWithNibName:@"YellowView" bundle:nil];
}
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
//removes blue
[self.blueViewController.view removeFromSuperview];
[self.view insertSubview:self.yellowViewController.view atIndex:0];
//loads green
} else if(self.greenViewController.view.superview == nil){
if (self.greenViewController == nil) {
self.greenViewController = [[BIDGreenViewController alloc] initWithNibName:@"GreenView" bundle:nil];
}
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
//removes yellow
[self.yellowViewController.view removeFromSuperview];
[self.view insertSubview:self.greenViewController.view atIndex:0];
//loads blue
} else if(self.blueViewController.view.superview == nil){
if (self.blueViewController == nil) {
self.blueViewController = [[BIDBlueViewController alloc] initWithNibName:@"BlueView" bundle:nil];
}
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
//removes green
[self.greenViewController.view removeFromSuperview];
[self.view insertSubview:self.blueViewController.view atIndex:0];
}
[UIView commitAnimations];
}
проблема, с которой я столкнулся, заключается в том, что в первом цикле она дважды повторяет зеленый экран, а затем продолжает работу и работает правильно. Я что-то упускаю или должен использовать оператор switch: case (и если да, то как бы я это сделал)?
Если у вас есть viewControllers, то wh y вы используете addSubView ?.Or простое использование UIView нет необходимости использовать три viewControllers – Warewolf
вы хотите повторить его? Или прекратите повторять его – Warewolf
Мне нужно его повторить. Когда кнопка нажата, она поворачивается на «желтый»; нажмите его еще раз, и он вращается на зеленый; нажмите его еще раз, и он поворачивается на синий; нажмите снова, он вращается до желтого, .... и т. д. и т. д.. Я совершенно новый для iOS/Xcode и не знаю, где включить ваши предложения? Мне нужно установить, чтобы каждый цвет имел .h и .m-файл, который я уже создал. Некоторые из ваших предложений идут в этих файлах? Более подробная помощь будет оценена. – jsollo2