我正在为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) {
}];
}