• iOS之UITableView组头组尾视图/标题悬停


    最近笔者在公司的iOS开发中,有一个iOS开发同事跑来问了两个问题:1.给UITableView设置了组头和组尾视图,但是一直显示不出来?2.UITableView的section的header和footer视图,没有产品经理需要的悬停效果?针对于这2个问题,我详细的测试了一下,然后得出了如下结论。

    针对于问题一,是因为对方创建UITableViewController的时候使用了错误的构造方法。如果用导航控制器pushUITableViewController类型的控制器,必须给定UITableView的style。如下所示,错误方式和正确方式:

    // UITableViewController错误创建方式:
        WSTableViewController *tableVC = [[WSTableViewController alloc] init];
        [self.navigationController pushViewController:tableVC animated:YES];
    
    // UITableViewController正确创建方式:
        WSTableViewController *tableVC = [[WSTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
        [self.navigationController pushViewController:tableVC animated:YES];
    
    // 注意:很多初级iOS工程师创建UITableViewController的时候习惯用init,殊不知,UITableViewController与其他控制器不同,需要指定控制器的tableView的style。
    // 另外,自定义UITableViewController需要重写init方法的时候,也不要傻乎乎的重写init方法,而是需要重写initWithStyle:方法。

    针对于问题二,UITableView的style无论是plain还是grouped样式,都可以设置组头组尾视图(通过代理方法)。但需要注意的是,如果UITableView的style设置为grouped样式,那么组头和组尾视图没有悬停效果。相反,如果UITableView的style设置为plain样式,那么组头和组尾视图会有悬停效果。如下图1为plain样式下的悬停效果;图2为grouped样式下的非悬停效果。(PS:下图中的UITableView分为3组,每组10行)

                           

               图1                                                                图2

    同理,组头标题和组尾标题也是如此。下图3为plain样式的效果,图4为grouped样式的效果。

                           

    注意:对于组头组尾视图,如果控制器是作为子控制器被push或者modal的。那么如果被push或者modal的UITableViewController为UITableViewStylePlain样式,那么很遗憾,依旧不会显示组头和组尾视图。所以只能够设置为UITableViewStyleGrouped样式。那么问题又来了,组头组尾视图是有了,但是不能够悬停。

         对于组头组尾标题,不管控制器作为子控制器push或者modal出来的。UITableViewController为UITableViewStylePlain样式,会有悬停效果。如果被push的UITableViewController为UITableViewStyleGrouped样式,不会有悬停效果。

  • 相关阅读:
    用友U8 | 【存货管理】存货模块中采购入库单生成凭证的关联单据
    用友U8 | 【应收款管理】手工核销时提示:某某客户被其他用户锁定
    SQL Profiler 跟踪器工具使用说明
    转载--form表单的默认提交行为
    转载--c# chart控件基本使用方法(柱状图和饼图)
    转载--C#使用chart绘制实时折线图,波形图
    控件的InvokeRequired方法
    转载--浅析前端安全之 XSS
    转载--mysql语句如何插入含单引号或反斜杠的值详解
    转载--C#实现WinForm下DataGridView控件的拷贝和粘贴
  • 原文地址:https://www.cnblogs.com/wsnb/p/5094989.html
Copyright © 2020-2023  润新知