objective-c - 请教一个 iOS 动画
天蓬老师
天蓬老师 2017-04-18 09:46:05
0
1
541

我想在上面的第一个方块和第二个方块之间插入一个新的方块,我希望的插入动画是新的方块从中心向两边展开(类似ppt中某个动画),同时其他几个方块的宽度能够慢慢变小,最后五个方块能够等宽,就像下面这样

但是我目前的情况是其中的文字会先瞬间移动到最终的位置(也就是说方块变小的过程中文字是不居中的),然后方块的宽度再慢慢变小,不知道为什么,我都是使用autolayout写的动画,我目前的写法是先写上新的方块的top,bottom,leading,trailing约束,然后调用layoutIfNeeded,最后是写上等宽约束,在animate block里面调用layoutIfNeeded。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(1)
巴扎黑

Ekspresi anda tidak begitu jelas. Perkara yang paling penting tentang animasi autolayout adalah untuk memahami keadaan paparan. Hanya memanggil layoutIfNeeded hanya akan memberikan kesan terakhir. Keadaan paparan mesti disimpan sebelum mencapai titik keadaan. Secara ringkasnya, selepas animasi dilaksanakan, gunakan layoutIfNeeded untuk mencapai kesannya. Jika terdapat animasi lain, anda perlu menggunakan setNeedsLayout Selepas itu, laksanakan atribut view yang perlu diubah akhirnya >

// 大概代码就是这样:
// 首先确定 视图的最终位置;也可以是上一次动画结束
[view layoutIfNeeded];
// 然后让视图进入下一次动画准备状态
[view setNeedsLayout];
// *** 这里实现一些变化代码
view.snp.top = ....
// 最后再执行这个。如果是动画,就在 UIView animate 中执行。
[view layoutIfNeeded];
// 这样就 OK 了。
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!