• UITableView属性和方法


    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);
    2 //上、左、下、右

    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、访问表头和表尾的视图

    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;

    To be Continue...

  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/zhaofucheng1129/p/3754265.html
Copyright © 2020-2023  润新知