码迷,mamicode.com
首页 > 其他好文 > 详细

UITabelView 介绍

时间:2015-10-24 16:59:09      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

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);
    }

}

UITabelView 介绍

标签:

原文地址:http://www.cnblogs.com/shuleihen/p/4906911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!