我在一个水平放置的 UIView 中有一组三个 UITableView,两个在屏幕上随时可见,另一个在屏幕外。我正在尝试对位置更改进行动画处理,在按下按钮时,最左侧的表格滑出屏幕向左,然后其他两个滑过以填充位置。
我遇到的问题是,如果我尝试一次为多个表格设置动画,则第一次按下按钮时不会发生任何事情。但在第二次按下时,一切正常。如果我尝试只为一张桌子制作动画,那么它在第一次印刷时就可以工作。我的按钮处理程序代码如下:
- (IBAction)buttonPressed:(id)sender{
CGRect newUITableView1Frame = self.originalUITableView1Frame;
newUITableView1Frame.origin.x = newUITableView1Frame.origin.x - newUITableView1Frame.size.width;
if(!makeSubButtonPressed){
self.makeSubButtonPressed = YES;
[self.makeSubButton setTitle:@"Choose Team Lineup" forState:UIControlStateNormal];
[UIView animateWithDuration:0.5
delay:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.UITableView1.frame = newUITableView1Frame;
self.UITableView2.frame = originalUITableView1Frame;
self.UITableView3.frame = originalUITableView2Frame;
}
completion:^(BOOL finished){NSLog(@"Animation Finished");}];
}
在 ViewDidLoad 方法中:
self.originalUITableView1Frame = self.UITableView1.frame;
self.originalUITableView2Frame = self.UITableView2.frame;
在第一次按下时,“动画完成”总是打印在控制台中,因此代码被执行。我还为每个动画尝试了单独的动画块,但结果是一样的。
我不知道出了什么问题。有什么建议么?
编辑:我可能应该补充一点,我正在为此使用 Storyboard,并且所有 UITableViews 都添加到那里。