【问题标题】:iPhone : How to create expanadable table view?iPhone:如何创建可扩展的表格视图?
【发布时间】:2011-09-27 11:36:08
【问题描述】:

我想创建可展开的表格视图。

我找到了一个link,和我想要的一样。

但我想创建自己的表格视图(不想实现这个 github 代码)。

如何实现这种功能?

【问题讨论】:

    标签: iphone objective-c cocoa-touch uitableview ios4


    【解决方案1】:

    查看这个不错的教程: Table View Animations and Gestures

    演示如何使用动画更新来打开和关闭表格视图的各个部分以供查看,其中每个部分代表一个剧本,每一行都包含该剧本的引文。它还使用手势识别器来响应用户输入: * UITapGestureRecognizer 允许点击部分标题以展开部分; * A UIPinchGestureRecognizer 允许动态更改表格视图行的高度;和 * 一个 UILongPressGestureRecognizer 允许按住表格视图单元格以启动报价电子邮件。

    【讨论】:

      【解决方案2】:

      我遇到了类似的功能,构建它的粗略算法将是:

      1. 实现 uitableviewdelgate 和 uitableviewdatasource 协议

      2. 创建一个全局变量expandSectionIndex = -1;

        = -1 表示全部折叠。

        = 0 表示扩展的SectionIndex。

        //the following protocol definitions will take care of which section is to be expanded.
        
         - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
          {
              if(expandedSectionIndex == section) 
                   return [self.dataArray[section] count];
              else 
                    return 0;
           }
        
          - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
          {
             if(self.dataArray)
                    return [self.dataArray count]; 
          }
        

        在-tableView:viewForHeaderInSection:

        中定义自定义标题视图
        • 具有与标题视图框架等效的框架的按钮
        • 将按钮标签属性设置为节号。
        • 将所有按钮与选择器相关联 - (void)expand:(id) sender;

          - (void)expand:(id) sender
           {
              expandedSectionIndex = [sender tag];
              [self.tableView reload];
           }
          

          更多详情enter link description here

      【讨论】:

        猜你喜欢
        • 2021-08-12
        • 1970-01-01
        • 2016-11-24
        • 2015-03-26
        • 1970-01-01
        • 2017-02-16
        • 2016-02-23
        • 1970-01-01
        • 2022-11-03
        相关资源
        最近更新 更多