帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:Expand  feature  Uitableview  EXP  uitable  
UITableView with expand/collapse feature (fully animatable)

  • 源代码名称:HVTableView
  • 源代码网址:http://www.github.com/innovian/HVTableView
  • HVTableView源代码文档
  • HVTableView源代码下载
  • Git URL:
    git://www.github.com/innovian/HVTableView.git
  • Git Clone代码到本地:
    git clone http://www.github.com/innovian/HVTableView
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/innovian/HVTableView
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • HVTableView 带展开/折叠功能

    VersionLicensePlatform

    HVTableView Example

    插件开发人员

    • Hamidreza Vakilian

    贡献者

    • Gavy Aggarwal ( @gavyaggarwal ) -- Storyboard 支持
    • Creatd软件( @creatd ) --Added collapseExpandedCells方法

    摘要

    这是 UITableView的子类,具有扩展/折叠功能,在许多场景中都有用。 开发人员可以使用展开/折叠tableView节省大量的时间,而不是为每个单元创建一个详细的viewController。 因此可以在同一表中显示每个单元格的详细信息,而不切换到另一个视图。

    用法

    在 Storyboard 或者你的nib文件中创建一个英镑的UITableView,并将它的类改为磅。 在 attributes inspector中,你可以设置英镑 expandOnlyOneCell enableAutoScroll properties属性。 另外,在 Storyboard HVTableViewDelegate 和HVTableViewDataSource到文件拥有者。

    英镑 expandOnlyOneCell 和英镑 enableAutoScroll description说明:

    expandOnlyOneCell==TRUE: Just one cell will be expanded at a time.
    expandOnlyOneCell==FALSE: multiple cells can be expanded at a time
    enableAutoScroll==TRUE: when the user touches a cell, the HVTableView will automatically scroll to it
    enableAutoScroll==FALSE: when the user touches a cell, the HVTableView won't scroll.

    viewController必须符合英镑的 HVTableViewDelegate和的HVTableViewDataSource协议。 与UITableView一样,你实现了这些熟悉的委托函数:

    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    我们为 heightForRowAtIndexPath函数添加了一个布尔参数,因此你必须为展开和崩溃状态计算不同的值。

    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath isExpanded:(BOOL)isExpanded
    (isExpanded==TRUE: return the size of the cell in expanded state)
    (isExpanded==FALSE: return the size of the cell in collapsed (initial) state)

    我们还在 function函数中增加了一个布尔参数。 更新单元格的内容,使它的符合状态( isExpanded ):

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath isExpanded:(BOOL)isExpanded

    现在有趣的函数如下所示。 在一个单元格将要展开时,实现 :collapsecell: withIndexPath,并且它将被激发。 你可以在这里委托方法中执行图形,动画,等等:

    -(void)tableView:(UITableView *)tableView collapseCell: (UITableViewCell*)cell withIndexPath:(NSIndexPath*) indexPath;

    对方来了,当一个电池将会折叠时会被触发。 你可以执行图形,动画,等等 或者清除这里函数中的单元格:

    -(void)tableView:(UITableView *)tableView expandCell: (UITableViewCell*)cell withIndexPath:(NSIndexPath*) indexPath;
    • 重要:有一些委托函数来自,如果你需要实现 HVTableView.m. 上的代理,请去 HVTableView.m 注释这些委托方法。 如果未取消注释,则委托方法将不会启动。
    Expand/Collapse/Toggle 单元

    这些方法被添加到 HVTableView:

    -(void)toggleCellAtIndexPath:(NSIndexPath*)indexPath;//toggles between collapsed and expanded state
    -(void)expandCellAtIndexPath:(NSIndexPath*)indexPath;//expands cell if it's collapsed
    -(void)collapseCellAtIndexPath:(NSIndexPath*)indexPath;//collapses the cell if it's expanded
    示例

    假设你有一个HVTableView名称的实例。 要以编程方式展开这里单元格,请使用这里方法:

    [self.table expandCellAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];

    对于切换和折叠单元格,使用情况非常相似。

    的优点

    如果你正在寻找用于可以展开视图的直接正向easy-to-setup库,则HVTableView是你的选择。 它提供了一个可以接受的性能,可以在常规项目中使用。

    扩展UITableViewCell需要调用的reloadRowsAtIndexPaths:withRowAnimation: 然后强制TableView重新加载单元格,之后我们将改变对应单元格的高度。 这就是为什么当单元格是动画的时候发生轻微闪烁的原因,因为它的unpreventable限制。 在 looking HyperTreeView的子类中,我们建议使用,它提供了节点的超平滑扩展/折叠,同时它支持分层结构。

    示例

    要运行示例项目,克隆 repo,然后从示例目录中运行 pod install

    安装

    HVTableView可以通过 CocoaPods 获得。 要安装它,只需在你的Podfile中添加以下行:

    pod "HVTableView"

    作者

    Innovian

    许可证

    HVTableView在MIT许可证下可用。 有关详细信息,请参阅许可证文件。



    文章标签:EXP  feature  Expand  Uitableview  uitable  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语