Ios 按下/点击按钮时,如何显示表格视图?
我试图让一个UITableView在用户点击按钮时出现,而在重新点击按钮时消失 我实现了以下代码,但当我点击按钮时,似乎什么也没有出现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
- (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。