设置UITableView设置contentsize
由于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相关推荐
- 快速设置UITableView不同section对应于不同种类的cell
快速设置UITableView不同section对应于不同种类的cell 本文主要是为了写明如何在UITableView中,一个section对应于一种类型的cell,写起来不凌乱. 在不封装任何类的 ...
- iOS设置UITableView的背景图片,以及不显示多余的空Cell
2019独角兽企业重金招聘Python工程师标准>>> 设置UITableView的背景图片: UIImageView *imageView=[[UIImageView alloc] ...
- 设置UITableView的separatorInset值为UIEdgeInsetsZero,分隔线不最左端显示的问题
一.问题描述 UITableView分割线要显示到最左端 查看UITableView的属性,发现设置separatorInset的值可以自定义分割线的位置. @property (nonatomic) ...
- python tableview 自适应_iOS8下UITableView的contentsize自动变化问题
遇到一个问题,一个页面中有一个UITableView,在iOS8中点击里面的图片或者链接push到下一个页面再返回时,TableView的底部就被遮盖在屏幕底部了,只有滑动到底部的瞬间能看到.而iOS ...
- 设置NotePad++设置不打开上次关闭的文件
notepad++是一个很好的记事本工具,但是默认会记录上次打开时未关闭的文件,但是实际上用起来并不方便, 可以按照下面的方式去除,notepad++版本:v6.6.2,os:win7 64位 按照以 ...
- Internet设置-连接选项卡-局域网(LAN)设置 某些设置由系统管理员进行管理
今天突然发现ss不能使用了.经过一系列排查发现 Internet设置->连接选项卡->局域网(LAN)设置 某些设置由系统管理员进行管理,如上图. 修改注册表值HKEY_LOCAL_MAC ...
- java截取图片-设置方位+设置大小
java截取图片-设置方位+设置大小 package com.onegrid.darj.test; import java.awt.Rectangle; import java.awt.image ...
- 【OpenGL】二十二、OpenGL 光照效果 ( 模型准备 | 光照设置 | 启用光照 | 启用光源 | 设置光源位置 | 设置光照参数 | 设置环境光 | 设置反射材质 | 设置法线 )
文章目录 一.模型准备 二.光照设置 1.启用光照设置 2.启用光源 3.设置光照参数 4.设置环境光 5.设置反射材质 三.光照法线设置 1.设置光源位置 2.设置法线 3.代码示例及运行效果 四. ...
- 设置代理_ie浏览器一键取消自动检测设置并设置代理
ie浏览器[设置]--[internet选项]--[连接]--[局域网设置] [自动设置]--默认这个[自动检测设置]是打勾的, 这可害了不少使用代理上网的人. 这个自动检测设置检测得并不准确,该走代 ...
最新文章
- 卷积神经网络通俗解读
- 万字干货|逻辑回归最详尽解释
- Android调用浏览器打开网址遇到的问题
- 学习LOWORD、 HIWORD、LOBYTE、HIBYTE
- 公共基础知识计算机,公共基础知识计算机基础知识试题
- 石墨烯区块链(5)智能合约
- erlang精要(3)-变量、原子与布尔代数
- Extending_and_embedding_php翻译
- MyBatis 级联
- PHP入门及服务环境配置(Nginx+PHP)
- java虚拟机手机系统,微软java虚拟机
- 使用PhoneNumberValidator判断用户输入的电话格式,并用PhoneFormatter对电话号码格式化。...
- LaTeX 长表格处理方法
- Oracle迁移到MySQL的各种坑及自救方案
- 快速搭建你的api数据交易平台-图文开发教程
- 微软服务器是永久授权的吗,微软再次针对Office永久授权版套件提价10% 将在10月1日起生效...
- SQL Server的错误日志
- OCR文字识别软件哪个好?7大文字识别软件
- 数据仓库架构的技术选型
- 晨哥真有料丨来看看你是哪款宝藏男孩!
热门文章
- redhat6.8链路聚合
- 为《31天成为IT服务达人》征求正式名字
- Ajax.BeginForm无法调用 ajaxOptions的js函数
- 题目1065:输出梯形 (直接用循环控制输出)+题目1432:叠筐 (数组控制形状,最后输出数组)...
- Java中的传值与传引用
- ecs服务器数据迁移_某国际物流集团的云迁移解决方案
- Win7下WinDbg开启Local Kernel Debug调试
- MyEclipse软件中快捷键
- 怎样正确使用和维护微型计算机,下篇:微型计算机应该怎样进行维护与保养
- linux下删除乱码文件名的方法