由于UITableView是继承自UIScrollView的,所以他是可以设置contentsize的。

但是,我在试验的过程中,初始化UITableView实例后,直接设置它的contentsize是不起作用,在搜寻相关资料得知,UITableView会自动设置contentsize,因为我们在建立tableview的时候是不用自己去设置contentsize的,她是自己计算出来的。

高潮要来了!!!

她是在实现她的datasource代理方法之后计算的。

一下几个方法:

- (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;

这些是计算她的height的,而width她会默认的设置为tableview的frame的width。so当你的scrollview的contentsize的width和frame的width一样大的时候,她是不会滑动的,所以,为什么,我们费心设置contentsize不起作用了。因为我们之前怎么设置,她都会默认经过那几个方法的时候自动重算一遍。

高潮来了!!!

那我们如何自己设置她的contentsize呢,我是在

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath代理中做的,并且设置成功了。

总结,开始我以为既然tableview是继承自scrollview的,那她为什么不能设置contentsize呢,难道scrollview中有其他限制?或者是tableview中有限制。最后得知了她的自己重算流程,得知原来,她是在进行datasource的时候,重新设置了。

那最后想到,我们在她自动设置完成后,我们再给她设置一下不就好了。

或者在-(void)viewDidAppear:(BOOL)animated;设置,稳稳地

-(void)viewDidAppear:(BOOL)animated{[super viewDidAppear:animated];self.tableView.contentSize = CGSizeMake(kSCreenWidth, kSCreenHeight+self.picView.height);
}

转载于:https://www.cnblogs.com/yyyyyyyyqs/p/7149607.html

设置UITableView设置contentsize相关推荐

  1. 快速设置UITableView不同section对应于不同种类的cell

    快速设置UITableView不同section对应于不同种类的cell 本文主要是为了写明如何在UITableView中,一个section对应于一种类型的cell,写起来不凌乱. 在不封装任何类的 ...

  2. iOS设置UITableView的背景图片,以及不显示多余的空Cell

    2019独角兽企业重金招聘Python工程师标准>>> 设置UITableView的背景图片: UIImageView *imageView=[[UIImageView alloc] ...

  3. 设置UITableView的separatorInset值为UIEdgeInsetsZero,分隔线不最左端显示的问题

    一.问题描述 UITableView分割线要显示到最左端 查看UITableView的属性,发现设置separatorInset的值可以自定义分割线的位置. @property (nonatomic) ...

  4. python tableview 自适应_iOS8下UITableView的contentsize自动变化问题

    遇到一个问题,一个页面中有一个UITableView,在iOS8中点击里面的图片或者链接push到下一个页面再返回时,TableView的底部就被遮盖在屏幕底部了,只有滑动到底部的瞬间能看到.而iOS ...

  5. 设置NotePad++设置不打开上次关闭的文件

    notepad++是一个很好的记事本工具,但是默认会记录上次打开时未关闭的文件,但是实际上用起来并不方便, 可以按照下面的方式去除,notepad++版本:v6.6.2,os:win7 64位 按照以 ...

  6. Internet设置-连接选项卡-局域网(LAN)设置 某些设置由系统管理员进行管理

    今天突然发现ss不能使用了.经过一系列排查发现 Internet设置->连接选项卡->局域网(LAN)设置 某些设置由系统管理员进行管理,如上图. 修改注册表值HKEY_LOCAL_MAC ...

  7. java截取图片-设置方位+设置大小

    java截取图片-设置方位+设置大小 package com.onegrid.darj.test; import java.awt.Rectangle;   import java.awt.image ...

  8. 【OpenGL】二十二、OpenGL 光照效果 ( 模型准备 | 光照设置 | 启用光照 | 启用光源 | 设置光源位置 | 设置光照参数 | 设置环境光 | 设置反射材质 | 设置法线 )

    文章目录 一.模型准备 二.光照设置 1.启用光照设置 2.启用光源 3.设置光照参数 4.设置环境光 5.设置反射材质 三.光照法线设置 1.设置光源位置 2.设置法线 3.代码示例及运行效果 四. ...

  9. 设置代理_ie浏览器一键取消自动检测设置并设置代理

    ie浏览器[设置]--[internet选项]--[连接]--[局域网设置] [自动设置]--默认这个[自动检测设置]是打勾的, 这可害了不少使用代理上网的人. 这个自动检测设置检测得并不准确,该走代 ...

最新文章

  1. 卷积神经网络通俗解读
  2. 万字干货|逻辑回归最详尽解释
  3. Android调用浏览器打开网址遇到的问题
  4. 学习LOWORD、 HIWORD、LOBYTE、HIBYTE
  5. 公共基础知识计算机,公共基础知识计算机基础知识试题
  6. 石墨烯区块链(5)智能合约
  7. erlang精要(3)-变量、原子与布尔代数
  8. Extending_and_embedding_php翻译
  9. MyBatis 级联
  10. PHP入门及服务环境配置(Nginx+PHP)
  11. java虚拟机手机系统,微软java虚拟机
  12. 使用PhoneNumberValidator判断用户输入的电话格式,并用PhoneFormatter对电话号码格式化。...
  13. LaTeX 长表格处理方法
  14. Oracle迁移到MySQL的各种坑及自救方案
  15. 快速搭建你的api数据交易平台-图文开发教程
  16. 微软服务器是永久授权的吗,微软再次针对Office永久授权版套件提价10% 将在10月1日起生效...
  17. SQL Server的错误日志
  18. OCR文字识别软件哪个好?7大文字识别软件
  19. 数据仓库架构的技术选型
  20. 晨哥真有料丨来看看你是哪款宝藏男孩!

热门文章

  1. redhat6.8链路聚合
  2. 为《31天成为IT服务达人》征求正式名字
  3. Ajax.BeginForm无法调用 ajaxOptions的js函数
  4. 题目1065:输出梯形 (直接用循环控制输出)+题目1432:叠筐 (数组控制形状,最后输出数组)...
  5. Java中的传值与传引用
  6. ecs服务器数据迁移_某国际物流集团的云迁移解决方案
  7. Win7下WinDbg开启Local Kernel Debug调试
  8. MyEclipse软件中快捷键
  9. 怎样正确使用和维护微型计算机,下篇:微型计算机应该怎样进行维护与保养
  10. linux下删除乱码文件名的方法