大佬教程收集整理的这篇文章主要介绍了ios – 将NSLayoutConstraints与CALayer支持的视图结合使用无法正确显示动画,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
// set the slide in view's initial height to zero self.adViewHeightConsTraint = [NSLayoutConsTraint consTraintWithItem:self.adContainerView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:0.0]; [self.view addConsTraint:self.adViewHeightconstraint]; // later,set the slid in view's height to non-zero double delayInSeconds = 3.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_Now,(int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime,dispatch_get_main_queue(),^(void){ self.adViewHeightConsTraint.constant = 100; [UIView animateWithDuration:2.5 animations:^{ [self.view layoutIfNeeded]; }]; });
这正确地动画了我所拥有的视图的大小,因此,正常工作.但是,我看到的问题是,我在2.5秒动画的持续时间内没有重绘一些自定义图层支持的视图.
我看到的行为是,要求自定义图层支持的视图在动画开始时绘制最终位置,然后应用一个转换,在动画持续时间内拉伸视图,直到它最终看起来正确.
这4个镜头显示的是红色条形图,然后两个蓝色视图的高度缩小,以适应尺寸缩小.图层知道如何为每个边界更改正确绘制自己,但动画并不是要求它在动画的每一步重绘…仅在开头.这就是为什么黑色圆圈看起来像一个椭圆形 – 它与图像#4相同但是拉伸了两半.
自定义CAlayer子类有一个重写方法:drawInContext :,并且该层的needsDisplayOnBoundsChange设置为YEs.
以上是大佬教程为你收集整理的ios – 将NSLayoutConstraints与CALayer支持的视图结合使用无法正确显示动画全部内容,希望文章能够帮你解决ios – 将NSLayoutConstraints与CALayer支持的视图结合使用无法正确显示动画所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。