contentOffset、contentSize和contentInset

1、UIScrollView
@property(nonatomic)CGPoint contentOffset;
这个属性用来表示UIScrollView滚动的位置

@property(nonatomic)CGSize contentSize;
这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)

@property(nonatomic)UIEdgeInsets contentInset;
这个属性能够在UIScrollView的4周增加额外的滚动区域

屏幕快照 2016-01-22 下午8.27.18.png

2、UITableView
UITableView是UIScrollView的子类,tabelview的contentsize是由它的下列方法共同实现的

- (NSInteger)numberOfSections;
- (NSInteger)numberOfRowsInSection:(NSInteger)section;
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

它会自动计算所有的高度和来做为它的contentsize的height.

例如你在delegate方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{
    return 100;
}

那么你的tabelview的contentsize就是(320, 4400)

如果是一个空的tableview,里面什么都没有设置,它就默认你的contentsize是(width ,0)了,所以它也不会有offset和inset了,如果你设置了它的行数(必须设置,否则默认是0)和每一行的高度(这个可以不设置,默认是44),那么它会自动计算contentsize了,这个时候tableview才可以拖动。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容