ios – UIImageView框架没有按预期动画(大小和原点)

ios – UIImageView框架没有按预期动画(大小和原点),第1张

概述与UIView帧动画有关的问题.视图应在原点和大小两者中设置动画,大小增加,原点线性移动以使视图保持在同一位置.但是会发生什么,视图减小到大小(0,0),然后增加到仍然不正确的大小.见附件视频. 问题视频:https://media.pairby.com/I/u/a/IualExcJXn7CqLsGkcNZfwyEw5MKi3SV/v.mp4 func animateIn() { // Mak 与UIVIEw帧动画有关的问题.视图应在原点和大小两者中设置动画,大小增加,原点线性移动以使视图保持在同一位置.但是会发生什么,视图减小到大小(0,0),然后增加到仍然不正确的大小.见附件视频.

问题视频:https://media.pairby.com/I/u/a/IualExcJXn7CqLsGkcNZfwyEw5MKi3SV/v.mp4

func animateIn() {  // Make _iconVIEw large  let w = bounds.wIDth  _iconVIEw.frame = CGRect(    x: frame.mIDX - w/2,y: frame.mIDY - w/2,wIDth: w,height: w)  isHIDden = false  UIVIEw.animate(withDuration: 0.2,animations: {    self.Alpha = 1    // Animate it smaller    let w = self.bounds.wIDth * 0.5    self._iconVIEw.frame = CGRect(      x: self.frame.mIDX - w/2,y: self.frame.mIDY - w/2,height: w)  })}func animateOut() {  UIVIEw.animate(withDuration: 3,delay: 0,options: .beginFromCurrentState,animations: {    self.Alpha = 0    // Make it large again    let w = self.bounds.wIDth    self._iconVIEw.frame = CGRect(      x: self.frame.mIDX - w/2,height: w)  },completion: { _ in self.isHIDden = true })}

更多细节:

self是UIVIEw的子类,仅限于supervIEw.

_iconVIEw是一个UIImageVIEw

保证animateIn在animateOut之前运行

animateOut是不能按预期工作的函数,animateIn工作

解决方法 然而,还不完全清楚你需要做什么

>您无需更改大小即可 – 您可以简单地为_iconVIEw框架设置当前状态的动画,以及
>因为_iconVIEw是self的子视图,你需要相对于边界而不是框架定位它.

试试这样:

func doAnim() -> VoID {         UIVIEw.animate(withDuration: 3,animations: {        self.Alpha = 0        let s = self.bounds.wIDth        let halfS = s / 2        self._iconVIEw.frame = CGRect(            x: self.bounds.mIDX - halfS,y: self.bounds.mIDY - halfS,wIDth: s,height: s)    })}
总结

以上是内存溢出为你收集整理的ios – UIImageView框架没有按预期动画(大小和原点)全部内容,希望文章能够帮你解决ios – UIImageView框架没有按预期动画(大小和原点)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存