Ios 按下/点击按钮时,如何显示表格视图?

Ios 按下/点击按钮时,如何显示表格视图?,ios,objective-c,xcode,Ios,Objective C,Xcode,我试图让一个UITableView在用户点击按钮时出现,而在重新点击按钮时消失 我实现了以下代码,但当我点击按钮时,似乎什么也没有出现 - (IBAction)dropDown:(UIButton *)sender { [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.6]; CGAffineTransform transfrom = CGAffineTransformMake

我试图让一个UITableView在用户点击按钮时出现,而在重新点击按钮时消失

我实现了以下代码,但当我点击按钮时,似乎什么也没有出现

- (IBAction)dropDown:(UIButton *)sender
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.6];
    CGAffineTransform transfrom = CGAffineTransformMakeTranslation(0, 200);
    self.markersTableView.transform = transfrom;
    self.markersTableView.alpha = self.markersTableView.alpha * (-1) + 1;

    [UIView commitAnimations];
}
潜在的问题是什么

编辑: 通过添加self.markersTableView.hidden=YES,我可以使UITableView显示和消失;在viewDidLoad和self.markersTableView.hidden中=否;在IBAction方法中

但是,当我最初点击按钮时,表格视图消失,如屏幕截图所示:

行的淡入显示它正在屏幕上向下移动,然后消失

只有当我第二次重新点击UIButton时,它才会重新出现


有什么线索吗?

不要在表视图上使用转换。这将使它看起来像是在一个不同的位置,但它不会正确响应点击

相反,请使用较新的基于UIView块的动画方法并更改视图的中心

如果不使用自动布局,代码可能如下所示

[UIView AnimateWithDuration: .2
  animations: ^
  {
    CGPoint center = self.markersTableView.center;
    center.y += 200;
    self.markersTableView.center = center;
  }
];
但是,如果您使用的是“自动布局”,这将不起作用,您需要使用约束设置视图位置的动画


从内存中,以下是如何执行基于自动布局的动画的概述:您可以在表视图上创建垂直位置约束,并将该约束连接到视图控制器中的IBOutlet。在动画代码中,更改垂直位置的约束常数,然后在动画块中,向视图发送needsLayout消息。

这是因为,根据最近的编辑,您最初将其设置为“不隐藏”,然后在点击按钮时将其设置为“隐藏”。如果您希望它最初隐藏,然后仅在点击时显示,请替换您在上面的编辑中发布的self.markersTableView.hidden值…另外,在按钮中,添加一个If方法,检查当前self.markersTableView.hidden值,并将其更改为相反的值。我是个白痴,我的意思是,我最初将其设置为“是”,而在iAction中将其设置为“否”…很抱歉造成混淆,我现在已对其进行了编辑。我正在使用自动布局,但我不确定我是否知道您的意思。我对iOS编程相当陌生,你能举个例子吗您只需将动画代码放在上面Duncan代码的块中,而不是使用beginAnimations和Committeanimations。