【发布时间】:2013-11-06 15:24:25
【问题描述】:
我在一个水平放置的 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;
在第一次按下时,“Animation Finished”总是会打印在控制台中,因此代码会被执行。我也为每个动画尝试了单独的动画块,但结果是一样的。
我不知道出了什么问题。有什么建议吗?
编辑:我可能应该补充一点,我正在为此使用 Storyboard,并且所有 UITableViews 都添加到那里。
【问题讨论】:
标签: ios objective-c uitableview uiview core-animation