幻灯片错觉会产生闪烁

时间:2016-03-22 19:54:04

标签: ios objective-c uiviewcontroller autolayout constraints

我正在为UITableView创建自定义选定动画。

我得到的是一个显示UIViewController的标准UITableView,在didSelectRow:AtIndexPath:实例化故事板中的另一个VC时,准备它并使用UIModalPresentationOverCurrentContext以模态方式显示它

然后第二个VC将顶部布局指南中的约束更新为UIImageView,因此将其精确放置在单元格位于屏幕上的位置。该坐标从第一个VC传递。

接下来,这个UIImageView向上滑动,产生了细胞向上滑动的错觉。但是,这会在经常滑动图像之前产生瞬间闪烁(并非总是如3/4次)。

在动画制作之前,最初定位UIImageView的更好方法是什么?

这是我的代码:

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:YES];
    self.imageViewTopConstraint.constant = self.cellFrame.origin.y;
    [self.view layoutIfNeeded];
    self.imageView.image = self.image;
}

-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:YES];
    /* animate the opening */
    [UIView animateWithDuration:0.45 delay:0 usingSpringWithDamping:1.0f initialSpringVelocity:1.2f options:UIViewAnimationOptionTransitionNone animations:^{

        /* slide image */
        self.imageViewTopConstraint.constant = 0.0f;
        [self.view layoutIfNeeded];

    }completion:^(BOOL finished) {

    }];
}

0 个答案:

没有答案