【发布时间】:2015-03-03 01:53:23
【问题描述】:
我有四个UIViews,位于我全视图的四个侧面,例如
View 3
View 4 View 2
View 1
(注意底视图有一点偏移)
它们都是 44x44 像素,看起来完全一样。
我让视图逆时针移动到下一个视图的位置(即视图 1 移动到视图 2,视图 2 移动到视图 3,等等),视图 4 移动到视图 1,但是不偏移。这部分工作正常,代码如下:
[UIView animateWithDuration:0.5 animations:^{
[view1 setFrame:view2.frame];
[view2 setFrame:view3.frame];
[view3 setFrame:view4.frame];
[view4 setFrame:centerFrame];
} completion:^(BOOL finished) {
[self reloadData];
}];
centerFrame 是 view1 的框架没有偏移。
在reloadData 方法中,帧被移回原来的位置,并且,因为它们看起来都一样,用户应该看到的唯一的事情是底部视图的移动回到它的偏移位置(虽然它确实从 view4 变为 view1)。这个变化看起来有点突然,我想为它制作动画,但我不希望视图向后移动,只需交叉溶解,这样只有底部视图看起来发生了变化。我试过了:
[UIView transitionWithView:self.view duration:1.0 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
// Reset frames
} completion:nil];
和
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
// Reset frames
} completion:nil];
但两者都会移动视图。所以我的问题,
如何使用交叉溶解动画为 UIView 帧更改设置动画,而不是在点之间移动?
提前致谢!
【问题讨论】:
-
明显的建议,但你试过玩 alpha 吗?
-
@MendyK 这将涉及制作具有相同属性的另一个视图、更改一些视图的 alpha 值以及移动框架,我希望有一个更简单的解决方案。
标签: ios objective-c cocoa-touch animation uiview