Java执行视图_如何在执行sendSubviewToBack之前强制完成视图动画?

我正在构建一个页面浏览器,可以将页面设置为“纸张”,并将其放在一堆纸上 . 为了保持流畅的动画,我使用了3个相互叠加的UIViews . 这三个视图包含当前页面(在顶部),上一页面(在中间)和下一页面(在底部) .

在下面的代码中,我想将顶视图向右拖动,显示下面的上一页 . 这很好用 . 但是,之后我需要将首页移动到堆栈的底部,以便在下次用户执行页面翻转时准备三个视图的堆栈 . 我使用sendSubviewToBack方法 .

我的问题是,一旦动画开始,ViewSample [Top]就会被发送到堆栈的底部 . 在将动画发送到堆栈底部之前,如何强制完成动画(以便ViewSample [Top]完全移出屏幕)?

ViewSample[Top].center = CGPointMake(x,y);

[UIView animateWithDuration:0.5

animations:^

{

ViewSample[Top].center = CGPointMake(x+w,y); //slide away to the right

}

completion:^(BOOL finished)

{

}

];

[self.MainView sendSubviewToBack:ViewSample[Top]];

编辑

我只是遇到了一个与我的问题有关的非常特殊的行为 . 我按照你的建议,发现动画的“完成”部分中的行为取决于变量'top'的值,当它设置为AFTERWARDS时:

ViewSample[Top].center = CGPointMake(x,y);

[UIView animateWithDuration:0.5

animations:^

{

ViewSample[Top].center = CGPointMake(x+w,y); //slide away to the right

}

completion:^(BOOL finished)

{ [self.MainView sendSubviewToBack:ViewSample[Top]];

}

];

Top++; // THIS COMMAND AFFECTS THE LINE ABOVE!!!

换句话说,当我添加“Top;”这一行时另一个View被移回堆栈,即使语句sendSubviewToBack是第一个 . 这对我来说非常困惑 . 这有意义吗?这是一个错误吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值