zoukankan      html  css  js  c++  java
  • UITableView的分组 快速索引

    当UITableView的分组较多的时候,经常会用到快速索引。

    //设置Section的Header的值 
    - (NSString *)tableView:(UITableView *)tableView 
     
    titleForHeaderInSection:(NSInteger)section { 
         
        NSString *key = [indexArray objectAtIndex:section]; 
         
        return key; 
         
    } 
     
    #pragma mark - 
     
    #pragma mark Table View Data Source Methods 
     
    //设置表格的索引数组 
    -(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView 
    { 
        return self.indexArray; 
    } 
    

    更改索引的背景颜色:

    NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR

    self.tableView.sectionIndexBackgroundColor = [UIColor clearColor]; 
    

    更改索引的文字颜色:

    self.tableView.sectionIndexColor = [UIColor blueColor];



    默认的快速索引是不允许设置的,但是还是有些牛人找到了Apple隐藏的接口
    - (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    //设置导航字体颜色、字体、背景色
    for (UIView* subview in [self.tableView subviews])
    {
    if ([subview isKindOfClass:NSClassFromString(@'UITableViewIndex')])
    {
    if([subview respondsToSelector:@selector(setIndexColor:)])
    {
    [subview performSelector:@selector(setIndexColor:) withObject:[UIColor redColor]];
    }
    if([subview respondsToSelector:@selector(setFont:)])
    {
    [subview performSelector:@selector(setFont:) withObject:[UIColor redColor]];
    }
    if([subview respondsToSelector:@selector(setBackgroundColor:)])
    {
    [subview performSelector:@selector(setBackgroundColor:) withObject:[UIColor redColor]];
    }
    }
    }
    也有人把这段代码写到- (void)viewDidAppear:(BOOL)animated;中,不过关系不大。重点是这三个接口很有可能会发生变化,所以用的时候最好还是调试一下。

  • 相关阅读:
    编写有效用例_阅读笔记05
    编写有效用例_阅读笔记04
    编写有效用例_阅读笔记03
    编写有效用例_阅读笔记02
    软件需求与分析课堂讨论一
    编写有效用例_阅读笔记01
    问题账户需求分析
    【知识总结】动态 DP
    【知识总结】数论全家桶
    【知识总结】多项式全家桶(三点五)(拆系数解决任意模数多项式卷积)
  • 原文地址:https://www.cnblogs.com/KingQiangzi/p/3722751.html
Copyright © 2011-2022 走看看