我的项目让我有些头疼,我认为这是因为我需要边做边学,因此我错过了 iOS 中的一些基本知识,所以不要对我大喊大叫!:-)。
我有一个 iOS iPad 故事板,由大约。33-35 视图控制器。这个概念是“世界”,你逐个查看,直到你到达我有一个动画 UIImage 的表面(25png,1,7f 持续时间)。由于 presentModalView 只是覆盖旧视图而不是在另一个视图从底部进入时将其向上推,所以我添加了 UIViewController+Transitions ( http://srooltheknife.blogspot.no/2012/03/custom-transition-animation-for -modal.html)也可以动画删除旧视图女巫完美。但是,当我在 UIImageView 中使用动画时使用这个额外的库时,所有触摸事件似乎都被禁用了。我已经在视图、按钮、视图上尝试了 enableUserInteraction = YES 但没有帮助。
任何想法?
这是具有动画的 viewController:
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"Main world view loaded....");
NSLog(@"Bounds = %@", NSStringFromCGRect(self.view.bounds));
//self.view.bounds = self.view.frame;
NSLog(@"Bounds are now = %@", NSStringFromCGRect(self.view.bounds));
self.view.clipsToBounds = YES;
self.navigationController.navigationBarHidden = YES;
self.view.userInteractionEnabled = YES;
NSLog(@"User interaction is enabled?= %i", self.view.userInteractionEnabled);
// Do any additional setup after loading the view, typically from a nib.
NSMutableArray *images = [[NSMutableArray alloc] init];
for (int i=1; i<=24; i++) {
[images addObject:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"Untitled-%d", i] ofType:@"png"]]];
}
world.animationImages = images;
world.animationDuration = 1.7;
[world startAnimating];
NSLog(@"Preparing audio");
NSURL *audioURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"mainWorldSound" ofType:@"wav"]];
NSError *audioError;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&audioError];
if(audioError){
NSLog(@"Error in audioplayer: %@", [audioError localizedDescription]);
} else {
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:NULL];
player.numberOfLoops = -1;
player.volume = 1.0;
if([player isPlaying]){
[player stop];
}
[player prepareToPlay];
[player play];
NSLog(@"Playing with volume: %f", player.volume);
}
[self.view setNeedsLayout];
[self.view setNeedsDisplay];
}
因此,在加载此视图之前,我有 5 个视图控制器,它们只是带有滑动事件的文本和图片。这是加载新 ViewController(上图)并为其设置动画的代码:
- (IBAction)goToMainWorld:(id)sender {
[self doVolumeFade];
ViewController *mainWorld = [self.storyboard instantiateViewControllerWithIdentifier:@"mainWorld"];
[self presentModalViewController:mainWorld withPushDirection:kCATransitionFromBottom];
}
为了让事情更容易看到,我从我的故事板中添加了一个屏幕截图。在这里(我还不允许发布图片):在此处输入链接描述
我还尝试修改 UIViewController+Transitions.m 以使用 navigationController Default
[self presentModalViewController:modalView animate:NO];
至:
[self.navigationController presentModalViewcontroller:modal view animate:NO];
但是如果我这样做,它会很好地加载第一个动画视图控制器,但如果这有意义的话,所有其他只是第一个被重新动画的视图控制器?
对不起,我的英语不好!
如果我需要提供更多代码,请告诉我!:-)..
谢谢