ios - 按下按钮时的 UIView 动画 - 第一次尝试时不可见

标签 ios objective-c uitableview uiview core-animation

我在水平放置的 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”,以便执行代码。我还尝试过为每个动画使用单独的动画 block ,但结果是相同的。

我不知道出了什么问题。有什么建议吗?

编辑:我可能应该补充一点,我为此使用了 Storyboard,并且所有 UITableView 都添加到了那里。

最佳答案

您在动画 block 中为第二个表设置了两次框架,但没有为第三个表设置框架。

在动画 block 中试试这个:

self.UITableView1.frame = newUITableView1Frame;
self.UITableView2.frame = originalUITableView1Frame;
self.UITableView3.frame = originalUITableView2Frame;

关于ios - 按下按钮时的 UIView 动画 - 第一次尝试时不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19815970/

相关文章:

ios - 如何在ios中制作不包含卸载选项的企业应用程序

ios - App购买中的自动续订订阅

ios - 如何更改 UITableView 和 Pixate 中的单元格高度

ios - 如何在移动到屏幕背景或杀死 App 时显示 UIAlertView?

ios - 无法访问我的单元格内容中的变量

ios - UITableViewCell 中的自定义 UIView 阻止 uitableviewcell 接收事件

ios - 返回应用程序时取消选择 TableView 行

iphone - 强制 UITableView 滚动到单元格顶部

ios - 可以从 web URL 和本地目录按文件名加载图像的扩展

iphone - YAJL - iOS/iPhone 上的 JSON