我的项目给了我一些头痛,我认为这是因为我需要通过做事来学习,因此我错过了iOS中的一些基本内容,所以不要对我大喊大叫! : - 。)
我有一个iOS iPad故事板,包括大约。 33-35 ViewControllers。 这个概念就是“世界”,你可以通过视图向下看,直到你到达我有动画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];
}
为了让事情更容易看到我在我的故事板中添加截图.. 在这里(我不允许发布图片):enter link description here
我还尝试修改UIViewController + Transitions.m以使用navigationController 默认
[self presentModalViewController:modalView animate:NO];
要:
[self.navigationController presentModalViewcontroller:modal view animate:NO];
但如果我这样做它会加载第一个动画视图控制器,但所有其他只是第一个视图控制器被重新动画,如果这是有道理的?
抱歉我的英语不好!
如果我需要提供更多代码,请告诉我们! : - )..
由于
答案 0 :(得分:0)
好的..我有点想到了自己,看起来我对每个“视图”使用视图的技巧并不是一个好主意......
我从未见过UIScrollView并认为值得尝试,对我来说似乎是它的解决方案。
MemoryVise大致相同,但我现在得到营销所需的转换等。现在唯一的问题是让每个ScrollView页面的声音淡入淡出,并且在底部的第二个UIScrollView中控制声音似乎让我头疼。
由于 问候 奥登