23.UITableView如何改变contentSize
2016-02-23 17:44
429 查看
在日常开发中,有些时候需要我们对 UITableVIew 的偏移量甚至 contentSize 做出调整, 那么有没有什么简单的方法呢?
1.硬性改变 contentSize
但是在改变其 contenSize后, 可能你会发现病不起作用, 那就证明你修改的时机不正确。首先,我们先来看几个 tableView 的代理
在试验的过程中,初始化UITableView实例后,直接设置它的contentsize是不起作用,在搜寻相关资料得知,UITableView会自动设置contentsize,因为我们在建立tableview的时候是不用自己去设置contentsize的,是系统计算出来的。
所以,我们费心设置contentsize不起作用了。因为我们之前怎么设置,她都会默认经过那几个方法的时候自动重算一遍。
(UITableViewCell*)tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath )indexPath
但当你在上面的代理中改变其 contenSize 的时候,就可以成功了。
总结,系统会进行多次执行上面的代理,所以,在datasource后,重新设置才会奏效,否则 contensize 的值又就会被系统的计算覆盖。
但这个方法本人是不推荐使用的,毕竟会破坏了 UITableview 内部自给自足的平衡,接下来你可以看一下下面的方法。
2.通过为 tableview 添加 header 或者 footer 来达到类似改变其 contensize 的效果
看到副标题你就会明白是什么意思了, 比如说当你需要增大 tableview 的 contensize 的高度了, 这时你可以通过添加一个 footerView 来达到这个目的。这里就不举例说明了。
1.硬性改变 contentSize
但是在改变其 contenSize后, 可能你会发现病不起作用, 那就证明你修改的时机不正确。首先,我们先来看几个 tableView 的代理
- (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;
在试验的过程中,初始化UITableView实例后,直接设置它的contentsize是不起作用,在搜寻相关资料得知,UITableView会自动设置contentsize,因为我们在建立tableview的时候是不用自己去设置contentsize的,是系统计算出来的。
所以,我们费心设置contentsize不起作用了。因为我们之前怎么设置,她都会默认经过那几个方法的时候自动重算一遍。
(UITableViewCell*)tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath )indexPath
但当你在上面的代理中改变其 contenSize 的时候,就可以成功了。
总结,系统会进行多次执行上面的代理,所以,在datasource后,重新设置才会奏效,否则 contensize 的值又就会被系统的计算覆盖。
但这个方法本人是不推荐使用的,毕竟会破坏了 UITableview 内部自给自足的平衡,接下来你可以看一下下面的方法。
2.通过为 tableview 添加 header 或者 footer 来达到类似改变其 contensize 的效果
看到副标题你就会明白是什么意思了, 比如说当你需要增大 tableview 的 contensize 的高度了, 这时你可以通过添加一个 footerView 来达到这个目的。这里就不举例说明了。
相关文章推荐
- ZOJ 3333 Guess the Price(模拟)
- mac下通过xcodebuild使用oclint
- UIAlertController使用
- UICollectionView
- Android BuildConfig.DEBUG的妙用
- Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certific
- request.get... getHeader 能取得的信息 参数
- Map集合中value()方法与keySet()、entrySet()区别 《转》
- APUE 头文件 "apue.h" 中包含的头文件解释
- 3.UIButton
- BEx Query Designer中的变量及其增强
- Android更新UI的2种方法
- 22.UIButton的标题和图片位置的调整/Image和BackgroundImage
- Animation动画详解(五)——ValueAnimator高级进阶(一)
- [Sequence Alignment Methods] Dynamic time warping (DTW)
- 《iOS Human Interface Guidelines》——Keyboards and Input Views
- UINavigationController实现全屏滑动返回功能
- iOS UIKit - 通知机制
- iOS UIKit - 键盘处理
- iOS UIKit - 手势处理