我使用Storyboard在Xcode 4.2中创建了一个新的选项卡式应用程序项目。 在viewDidLoad中,我添加以下代码:
[UIView animateWithDuration:30
delay:0
options:UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear
animations:^(void) {
CGRect imageViewFrame = self.scrollingImageView.frame;
imageViewFrame.origin.x = CGRectGetWidth(imageViewFrame) / -2;
self.scrollingImageView.frame = imageViewFrame;
} completion:nil];
然后我创建关联的UIImageView属性并在IB中连接它。
@property (nonatomic, strong) IBOutlet UIImageView *scrollingImageView;
我将图像放入imageview,在模拟器或iPod Touch中运行,我看到滚动。
但是,当我选择第二个选项卡然后返回第一个选项卡时,动画会立即显示,即使我将上述内容放入viewWillAppear,也无法重新启动。我搜索了很多答案,无法解决。
任何帮助都将不胜感激。
答案 0 :(得分:4)
您正在处理的问题似乎特定于标签栏控制器,而不是故事板或特定动画。问题是,当您切换到其他选项卡时,动画将停止,当您返回第一个选项卡时,它不会恢复。
在viewWillAppear
中再次订购动画不起作用(如您所述),但如果您先在viewWillDisappear
中删除动画,则在viewWillAppear
中再次对其进行排序应该有效。例如
- (void)viewWillDisappear:(BOOL)animated
{
[self.view.layer removeAllAnimations]; // or whatever you need to use to remove your specific animation
}
注意:动画删除代码应该在viewWillDisappear
而非viewWillUnload
,因为切换标签时不会调用viewWillUnload
。