美文网首页iOS笔记
[iOS]TableView 相关属性和方法

[iOS]TableView 相关属性和方法

作者: 德山_ | 来源:发表于2017-02-08 16:21 被阅读60次

    1、初始化一个UITableView

    1 - (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
    1 struct CGRect {
    2    CGPoint origin;
    3    CGSize size;
    4 };
    5 typedef struct CGRect CGRect;```
    

    1 typedef enum {
    2 UITableViewStylePlain, //平铺样式
    3 UITableViewStyleGrouped //分组样式
    4 } UITableViewStyle;

    2、配置一个TableView
    
    1)返回这个TableView的样式(只读属性)
    

    1 @property(nonatomic, readonly) UITableViewStyle style```

    2)返回指定section内的Cell的行数

    1 - (NSInteger)numberOfRowsInSection:(NSInteger)section
    

    当TableView在UITableViewStylePlain下section应该为0

    3)返回TableView的section数量

    1 - (NSInteger)numberOfSections```
    4)设置TableView中所有cell的高度
    

    1 @property(nonatomic) CGFloat rowHeight```
    Apple建议我们使用代理方法tableView:heightForRowAtIndexPath:代替rowHeight方法使TableView的性能更高

    5)设置TableView的分隔线的样式

    1 @property(nonatomic) UITableViewCellSeparatorStyle separatorStyle```
    

    1 typedef enum : NSInteger {
    2 UITableViewCellSeparatorStyleNone, //无分隔线
    3 UITableViewCellSeparatorStyleSingleLine, //单分割线
    4 UITableViewCellSeparatorStyleSingleLineEtched //被侵蚀的但分隔线
    5 } UITableViewCellSeparatorStyle;```
    6)设置TableView的分隔线颜色

    1 @property(nonatomic, retain) UIColor *separatorColor```
    7)设置TableView的背景视图
    

    1 @property(nonatomic, readwrite, retain) UIView *backgroundView```
    8)设置TableView的分隔线偏移量

    1 @property (nonatomic) UIEdgeInsets separatorInset
    2 //Available in iOS 7.0 and later.```
    Apple的例子
    

    1 tableView.separatorInset = UIEdgeInsetsMake(0, 3, 0, 11);
    //上、左、下、右

    3、创建TableView的Cell
    
    1)注册一个包含指定标示符TableView的Cell的nib对象
    

    1 - (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier //两个参数不能是nil
    2 //Available in iOS 5.0 and later.```
    2)注册一个类用来创建新的Cell

    1 - (void)registerClass:(Class)cellClass forCellReuseIdentifier:(NSString *)identifier
    2 //Available in iOS 6.0 and later.```
    3)使用指定的标示符返回可重用的Cell
    

    1 - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath
    2 //Available in iOS 6.0 and later.```
    Apple重要提示:使用这个方法之前必须是使用了registerNib:forCellReuseIdentifier: 或者 registerClass:forCellReuseIdentifier:方法注册了Cell

    4)使用指定的标示符返回可重用的Cell

    1 - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier
    

    4、访问表头和表尾的视图

    header通过下面两个代理方法设置

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
    
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section```
    footer通过下面两个
    
    • (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

    • (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section如果要做整个tableview的header和footer,要通过tableview setHeaderView setFooterView```
      让表头表尾视图跟着tableView移动需要把tableView的样式设为group

    1)注册一个包含表头或表尾的指定标示符表视图的nib对象

    1 - (void)registerNib:(UINib *)nib forHeaderFooterViewReuseIdentifier:(NSString *)identifier
    2 //Available in iOS 6.0 and later.```
    2)注册一个类,用来创建新的包含表头或表尾的表视图
    

    1 - (void)registerClass:(Class)aClass forHeaderFooterViewReuseIdentifier:(NSString *)identifier
    2 //Available in iOS 6.0 and later.```
    3)返回一个指定标识符的可重用的附带表头表尾的视图

    1 - (id)dequeueReusableHeaderFooterViewWithIdentifier:(NSString *)identifier
    2 //Available in iOS 6.0 and later.```
    4)设置或返回该表格的表头视图
    

    1 @property(nonatomic, retain) UIView *tableHeaderView```
    5)设置或返回该表格的表尾视图

    1 @property(nonatomic, retain) UIView *tableFooterView```
    6)设置或返回该表格的表头高度
    

    1 @property(nonatomic) CGFloat sectionHeaderHeight```
    7)设置或返回该表格的表尾高度

    1 @property(nonatomic) CGFloat sectionFooterHeight```
    8)返回指定section的表头视图
    

    1 - (UITableViewHeaderFooterView *)headerViewForSection:(NSInteger)section
    2 //Available in iOS 6.0 and later.```
    9)返回指定section的表尾视图

    1 - (UITableViewHeaderFooterView *)footerViewForSection:(NSInteger)section
    2 //Available in iOS 6.0 and later.```
    
    5、访问Cell和Section
    
    1)返回指定indexPath的Cell
    

    1 - (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath```
    2)返回指定Cell的IndexPath

    1 - (NSIndexPath *)indexPathForCell:(UITableViewCell *)cell```
    3)返回指定点的IndexPath
    

    1 - (NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point```
    4)返回指定区域内的IndexPath组成的数组

    1 - (NSArray *)indexPathsForRowsInRect:(CGRect)rect```
    5)返回可见的UITableViewCell组成的数组
    

    1 - (NSArray *)visibleCells```
    6)返回可见表格行的IndexPath组成的数组

    1 - (NSArray *)indexPathsForVisibleRows```
    
    6、估算元素的高度
    
    1)设置表格行的估算高度以改善性能
    

    1 @property (nonatomic) CGFloat estimatedRowHeight
    2 //The default value is 0, which means there is no estimate.
    3 //Available in iOS 7.0 and later.```
    2)设置Section头的估算高度以改善性能

    1 @property(nonatomic) CGFloat estimatedSectionHeaderHeight
    2 //The default value is 0, which means there is no estimate.
    3 //Available in iOS 7.0 and later.```
    3)设置Section尾的古都按高度以改善性能
    

    1 @property(nonatomic) CGFloat estimatedSectionFooterHeight
    2 //The default value is 0, which means there is no estimate.
    3 //Available in iOS 7.0 and later.

    7、滚动TableView
    
    1)滚动到指定的位置
    

    1 - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated
    1 typedef enum {
    2 UITableViewScrollPositionNone,
    3 UITableViewScrollPositionTop,
    4 UITableViewScrollPositionMiddle,
    5 UITableViewScrollPositionBottom
    6 } UITableViewScrollPosition;

    转载http://www.jianshu.com/p/1ddec29b83a0 感谢作者

    相关文章

      网友评论

        本文标题:[iOS]TableView 相关属性和方法

        本文链接:https://www.haomeiwen.com/subject/vvtbittx.html