• UITabelView 介绍


    1、TableView 样式
    @property (nonatomic, readonly) UITableViewStyle  style;
     
    平铺模式:sectionHeader和sectionFooter会悬停,有sectionIndex,分隔线
    分组模式:heightForHeaderInSection和heightForFooterInSection回调设置0不会起作用,改成0.001f
     
    2、背景
    @property(nonatomic, readwrite, retain) UIView *backgroundView NS_AVAILABLE_IOS(3_2);
    @property(nonatomic,copy)  UIColor *backgroundColor UI_APPEARANCE_SELECTOR;
     
    设置tableView的背景颜色要考虑backgroundView。在plan模式下backgroundView为nil,group模式在iOS6上是有值的。所以不想要backgroundView,最好设置为nil。
     
    3、表头和表尾
    @property(nonatomic,retain) UIView *tableHeaderView;                            
    @property(nonatomic,retain) UIView *tableFooterView;  
     
    表头和表尾都会跟随tableView滑动,表头一般多用来添加SearchBar,
     
    4、分割线
    @property(nonatomic)           UITableViewCellSeparatorStyle separatorStyle;         
    @property(nonatomic,retain) UIColor *separatorColor;
    @property (nonatomic)          UIEdgeInsets   separatorInset NS_AVAILABLE_IOS(7_0)
     
    1)在plan模式下,即使没有cell分割线依然显示,所以一般在plan模式下不使用系统的分割线,将separatorStyle设置为UITableViewCellSeparatorStyleNone,然后自己在cell里添加分割线,
    分割线的添加方法:1、drawRect绘制 2、在contentView中添加view 推荐第二种方法,尽量不免在cell中绘制会导致刷新比较慢
    2)在group模式下,iOS7以后可以考虑使用系统分割线,分割线颜色和偏移都可以设置
     
    5、sectionHeader、sectionFooter、cell高度
    @property (nonatomic)          CGFloat                    rowHeight; 
    @property (nonatomic)          CGFloat                    sectionHeaderHeight; 
    @property (nonatomic)          CGFloat                    sectionFooterHeight; 
     
    如果高度是固定,就直接赋值,尽可能的减少UITableViewDelegate回调获取高度
     
    iOS7之后提供了预估高度提高性能
    @property (nonatomic) CGFloat  estimatedRowHeight NS_AVAILABLE_IOS(7_0);
    @property (nonatomic) CGFloat  estimatedSectionHeaderHeight NS_AVAILABLE_IOS(7_0);
    @property (nonatomic) CGFloat  estimatedSectionFooterHeight NS_AVAILABLE_IOS(7_0);
     
    6、sectionIndex 右边索引条
    @property(nonatomic) NSInteger sectionIndexMinimumDisplayRowCount;                                        
    @property(nonatomic, retain) UIColor *sectionIndexColor NS_AVAILABLE_IOS(6_0)         
    @property(nonatomic, retain) UIColor *sectionIndexBackgroundColor NS_AVAILABLE_IOS(7_0)
    @property(nonatomic, retain) UIColor *sectionIndexTrackingBackgroundColor NS_AVAILABLE_IOS(6_0)
     
    共有四个属性值,用来设置索引字体颜色和背景颜色,由于试用SDK不同,所以在试用时调用respondsToSelector判断方法存在
     
    7、indexPath和cell之间的转换
    - (NSIndexPath *)indexPathForCell:(UITableViewCell *)cell; 
    - (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath; 
     
    8、获取可见区域cell
    - (NSArray *)visibleCells;
    - (NSArray *)indexPathsForVisibleRows;
     
    9、UITableViewCell 使用
    1)nib方式使用:
    UINib *nib = [UINib nibWithNibName:@"WXCartCell" bundle:nil];
    [self.tableView registerNib:nib forCellReuseIdentifier:@"WXCartCellID"];
    2)class方式使用
    [self.tableView registerClass:[WXCartCell class] forCellReuseIdentifier:@"WXCartCellID"];
     
    在cellForRowAtIndexPath中复用cell
    WXCartCell *cell = [tableView dequeueReusableCellWithIdentifier:@"WXCartCellID"];
     
    10、让sectionHeaderView 不悬停

    #pragma mark - UIScrollViewDelegate
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
        CGPoint p = scrollView.contentOffset;
       
        CGFloat height = 20;     // sectionHeader height
       
        if (p.y <= height && p.y >= 0) {
            self.tableView.contentInset = UIEdgeInsetsMake(-p.y, 0, 0, 0);
        } else if (p.y >= height) {
            self.tableView.contentInset = UIEdgeInsetsMake(-height, 0, 0, 0);
        }

    }
  • 相关阅读:
    ICL7135的C程序
    数组属性的习题、Arrays工具、二维数组
    上传文件js端处理
    Java常见的系统路径与获取方法
    java 文件流的处理 文件打包成zip
    JAVA根据URL网址获取输入流
    nginx安装教程
    jackson 实体转json json字符串转实体
    java 对象重写tostring
    java 将文件流和文件名称转换为文件
  • 原文地址:https://www.cnblogs.com/shuleihen/p/4906911.html
Copyright © 2020-2023  润新知