我在水平放置的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,并在那里添加了所有UITableView。答案 0 :(得分:1)
您正在动画块中为第二个表设置两次帧,但您没有为第三个表设置帧。
在动画块中尝试此操作:
self.UITableView1.frame = newUITableView1Frame;
self.UITableView2.frame = originalUITableView1Frame;
self.UITableView3.frame = originalUITableView2Frame;