Passing an animating UIImageView between viewControllers in prepareForSegue:?

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-24 21:20:33

问题


Based on some earlier questions (ex: ios5 how to pass prepareForSegue: a UIImageView) I was wondering how smooth this technique is, say when doing a modal segue with animated = NO.

I can toss together a test but I imagine someone has already scoped out the performance and practical pitfalls of using this as a transition technique. I would be interested in hearing any details - for example, does the UIImageView animation restart or does it continue apace?


回答1:


If you pass an animating image view to another controller, it looks like the animation continues apace. I can't see any "hitch" in the animation. Going forward with a modal presentation worked fine. I couldn't go back to the first controller, by just dismissing, I had to add the image view back to the view to make that work, and even then it only worked if I turned off auto layout (otherwise I get an error saying it can't install a constraint). So, to go back and forth with modals (with no animation) I had this in the first controller:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.isFirst = YES;
    NSMutableArray *imgArray = [NSMutableArray array];
    for (int i = 1; i< 41; i++) {
        UIImage *img = [UIImage imageNamed:[NSString stringWithFormat:@"New_PICT%04d.jpg",i]];
        if (img) {
            [imgArray addObject:img];
        }
    }
    self.iv.animationImages = imgArray;
    self.iv.animationDuration = 10;
    [self.iv startAnimating];
}

-(void)viewDidAppear:(BOOL)animated {
    if (self.isFirst) {
        self.isFirst = NO;
    }else{
        self.iv.frame = CGRectMake(48, 48, 48, 48);
        [self.view addSubview:self.iv];
    }
}


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    SecondViewController *sec = segue.destinationViewController;
    sec.iv = self.iv;
}


来源:https://stackoverflow.com/questions/15449724/passing-an-animating-uiimageview-between-viewcontrollers-in-prepareforsegue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!