Ios 如何使用UIButton设置单元格动画?

Ios 如何使用UIButton设置单元格动画?,ios,iphone,xcode,swift,Ios,Iphone,Xcode,Swift,我想折叠一个区域内的所有单元格。我想通过点击我在节标题中添加的按钮来实现这一点。显然,有了动画。不仅仅是消失。我有一个想法,如果我能得到节的索引路径,因为我在每个节中都有固定数量的单元格,我可以创建一个switch语句来为具有适当索引的单元格设置动画。1:将操作分配给标题视图(我确信有一个代表回调用于节点击,否则将TapSirter添加到标题视图) 2:如果使用“自动布局”,请设置tabvleView高度约束的动画,否则将设置tableView的frame.height 有什么有效的方法吗?Ut


我想折叠一个区域内的所有单元格。我想通过点击我在节标题中添加的按钮来实现这一点。显然,有了动画。不仅仅是消失。我有一个想法,如果我能得到节的索引路径,因为我在每个节中都有固定数量的单元格,我可以创建一个switch语句来为具有适当索引的单元格设置动画。

1:将操作分配给标题视图(我确信有一个代表回调用于节点击,否则将TapSirter添加到标题视图)

2:如果使用“自动布局”,请设置tabvleView高度约束的动画,否则将设置tableView的frame.height


有什么有效的方法吗?UtableView可能内置了解除锁定功能:)

1:将操作分配给标题视图(我确信有一个用于分段点击的委托回调,否则将TapSirtation添加到标题视图)

2:如果使用“自动布局”,请设置tabvleView高度约束的动画,否则将设置tableView的frame.height

有什么有效的方法吗?也许UITableView内置了解除锁定功能:)

因此,如果您使用AutoLayout(而且您应该这样做,因为它很棒),那么UIView*contentView的动画将如下所示:

IBOutlet NSLayoutConstraint *contentViewHeightConstraint;
将Interface Builder中的此插座连接到contentView的高度约束

如果你不知道矛盾和自动布局,那就在youtube上练习两周:)

因此,如果您使用AutoLayout(您应该这样做,因为它很棒),那么UIView*contentView的动画将如下所示:

IBOutlet NSLayoutConstraint *contentViewHeightConstraint;
将Interface Builder中的此插座连接到contentView的高度约束

如果你不知道矛盾和自动布局,那就在youtube上练习两周:)


我认为将用于展开/折叠行的自定义动画添加到以下UITableViewDelegate func可能会起作用

可选func tableView(tableView:UITableView,willDisplayCell:UITableViewCell,ForRowatineIndexPath indexPath:NSIndexPath)

另外,下面的链接为隐藏表视图单元格/行提供了一个很好的解决方案


祝你好运

我认为将用于展开/折叠行的自定义动画添加到以下UITableViewDelegate函数可能会起作用

可选func tableView(tableView:UITableView,willDisplayCell:UITableViewCell,ForRowatineIndexPath indexPath:NSIndexPath)

另外,下面的链接为隐藏表视图单元格/行提供了一个很好的解决方案


祝你好运

您可以使用BeginUpdate/EndUpdate块。将要设置动画的tableView更改放入此块中。(但不要在块内调用
[tableView reloadData]
。)

例如,在节标题按钮点击处理程序中编写如下内容:

[self.tableView beginUpdates];
[self.tableView deleteRowsWithIdexPaths:indexPathsToDelete 
                       withRowAnimation:UITableViewRowAnimationTop];
[self.tableView endUpdates];

使用此代码,索引为
indexPathsToDelete
的行将随着
UITableViewRowAnimationTop
动画消失,但您可以根据需要更改动画类型


有关更多信息,请参阅“掌握表格视图”,特别是从17:40开始的演示。

您可以使用BeginUpdate/EndUpdate块。将要设置动画的tableView更改放入此块中。(但不要在块内调用
[tableView reloadData]
。)

例如,在节标题按钮点击处理程序中编写如下内容:

[self.tableView beginUpdates];
[self.tableView deleteRowsWithIdexPaths:indexPathsToDelete 
                       withRowAnimation:UITableViewRowAnimationTop];
[self.tableView endUpdates];

使用此代码,索引为
indexPathsToDelete
的行将随着
UITableViewRowAnimationTop
动画消失,但您可以根据需要更改动画类型


有关更多信息,请参阅“掌握表格视图”,特别是从17:40开始的演示。

您能解释一下第二步吗,或者给我一些教程链接或其他什么吗?非常感谢。我想在那个视图控制器中添加两个tableView。TestHeader将是一个按钮,用于设置表格视图高度的动画。你能解释一下第二步吗,或者给我一些教程链接或其他什么吗?非常感谢。我想在那个视图控制器中添加两个tableView。TestHeader将是一个按钮,用于设置表视图高度的动画。我试图在按钮操作中调用此函数。
indexPathsToDelete
是索引路径数组,因此它应该是这样的:
@[[nsindepath indexPathForRow:0第0节],[nsindepath indexPathForRow:1第0节]
我为indepath编写了一个整数,但它不允许我这样做。我试图在按钮操作中调用此函数。
indexPathsToDelete
是索引路径数组,因此它应该是这样的:
@[[nsindepath indexPathForRow:0第0节],[nsindepath indexPathForRow:1第0节]