tableviewcell 不从顶部加载,uitableviewwrapperview的问题

Jun-Lee 2015-09-22 09:33:16
我是用了父子控制器,自定义segmentedcontroll,两个button切换子控制器的view,两个子控制器是tableViewcontroller,懒加载两个控制器,然后在viewDIdLoad里添加了一个子控制器的view,[self.view addSubview:tableview]就是默认选中一个view(如图:投票),两个tableview设置的y值都是64,越过导航栏,但是默认选中的tableview的cell的y值在导航栏下又留了64;背景tableview是从导航栏下加载的没问题,就是内部uitableviewwrapperview又向下走了64;另外一个没预先选中的view(如图:评分)没问题,如果不默认选中就没事,请问哪得问题?(如图,红色是tableview背景色,但是cell是向下走了64高度)[self.view addSubview:tableview]估计就是这的问题
...全文
6421 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzkoo 2017-04-17
  • 打赏
  • 举报
回复
加入iOS技术大牛群 群号:149615208,一起交流进步
RunningSister 2017-01-11
  • 打赏
  • 举报
回复
再次
梧桐梦 2016-07-22
  • 打赏
  • 举报
回复
12楼正解,完美解决,谢谢分享
Immanito 2016-06-27
  • 打赏
  • 举报
回复
不错 完美解决
KazamiZhuang 2016-04-20
  • 打赏
  • 举报
回复
12楼正解,多谢!!!
引用 12 楼 lintxorg 的回复:
navigationController的automaticallyAdjustsScrollViewInsets属性为yes时会自动对contentview上的第一个uiscrollview(uitableview也是uiscrollerview)自动加bar的insets(一般为64,下面都以64来说,但有些情况下不是64,比如接电话时,是84) 所以一般情况下使用navigationController时不用特别处理navigationController的高度问题,因为会自动把你的视图往下移动64 你的情况是有contentview中有两个uiscrollerview,都手动加了64的偏移,所以先添加的那个会再往下加64的偏移,造成你这个问题 像楼上说的那样,设置automaticallyAdjustsScrollViewInsets为no即可,但10楼说的不对,automaticallyAdjustsScrollViewInsets是iewcontroller的不是navigationcontroller的,11楼也不对,automaticallyAdjustsScrollViewInsets为no就要手动设置偏移,也就是你还是需要+64(因为你已经+64了所以可以不用改) 但是这样也不是最好的解决方案,因为你手动加64就只能是64,除非用大量代码判断,否则接电话、录音、连接个人热点等通知栏高度改变时界面会错位(可以在viewDidLayoutSubviews中重新设置偏移) 好的办法应该是用autolayout,并且不设置偏移(顶部到顶),然后在viewDidLoad中设置self.edgesForExtendedLayout=UIRectEdgeNone 这样设置的作用是让controller绘制视图时不要将顶部通知栏、导航栏和底部toolbar等的高度计算在contentview中,所以这样设置之后就可以不设置tableview的偏移也可以显示正常,然后使用autolayout的目的是为了界面重载时(如切换打电话状态)也能重新调整界面 以上。
LinTx_ 2016-03-10
  • 打赏
  • 举报
回复
navigationController的automaticallyAdjustsScrollViewInsets属性为yes时会自动对contentview上的第一个uiscrollview(uitableview也是uiscrollerview)自动加bar的insets(一般为64,下面都以64来说,但有些情况下不是64,比如接电话时,是84) 所以一般情况下使用navigationController时不用特别处理navigationController的高度问题,因为会自动把你的视图往下移动64 你的情况是有contentview中有两个uiscrollerview,都手动加了64的偏移,所以先添加的那个会再往下加64的偏移,造成你这个问题 像楼上说的那样,设置automaticallyAdjustsScrollViewInsets为no即可,但10楼说的不对,automaticallyAdjustsScrollViewInsets是iewcontroller的不是navigationcontroller的,11楼也不对,automaticallyAdjustsScrollViewInsets为no就要手动设置偏移,也就是你还是需要+64(因为你已经+64了所以可以不用改) 但是这样也不是最好的解决方案,因为你手动加64就只能是64,除非用大量代码判断,否则接电话、录音、连接个人热点等通知栏高度改变时界面会错位(可以在viewDidLayoutSubviews中重新设置偏移) 好的办法应该是用autolayout,并且不设置偏移(顶部到顶),然后在viewDidLoad中设置self.edgesForExtendedLayout=UIRectEdgeNone 这样设置的作用是让controller绘制视图时不要将顶部通知栏、导航栏和底部toolbar等的高度计算在contentview中,所以这样设置之后就可以不设置tableview的偏移也可以显示正常,然后使用autolayout的目的是为了界面重载时(如切换打电话状态)也能重新调整界面 以上。
dMdM~ 2016-03-09
  • 打赏
  • 举报
回复
self.automaticallyAdjustsScrollViewInsets = NO; 用了这个就不用+64了
痛-啶-偲-痛 2016-02-22
  • 打赏
  • 举报
回复
在出问题的controller上加上下面这两句就可以了,记得给分 self.navigationController.automaticallyAdjustsScrollViewInsets = NO; self.navigationController.navigationBar.translucent = YES;
sinat_34017346 2016-02-19
  • 打赏
  • 举报
回复
我这边也遇到了这个问题,往下掉其实就是控制器的automaticallyAdjustsScrollViewInsets这个属性在捣鬼,有导航栏的scrollView会默认把scrollView的显示往下移动64,就是导航栏的高度,所以要自己调整的话设置为NO就可以,但是这里涉及到父控制器和子控制器的话,我发现我当时只是设置了childVC的automaticallyAdjustsScrollViewInsets为NO,再在初始化父控制器时候设置其automaticallyAdjustsScrollViewInsets为NO即可。
一朵西兰花 2015-11-02
  • 打赏
  • 举报
回复
if newVC is CloudAllOrderViewController { self.automaticallyAdjustsScrollViewInsets = false } else { self.automaticallyAdjustsScrollViewInsets = true }
一朵西兰花 2015-11-02
  • 打赏
  • 举报
回复
if newVC is CloudAllOrderViewController { self.automaticallyAdjustsScrollViewInsets = false } else { self.automaticallyAdjustsScrollViewInsets = true }
一朵西兰花 2015-10-27
  • 打赏
  • 举报
回复
我也遇到这个问题 请问解决了么
CallMeCoderLeon 2015-10-27
  • 打赏
  • 举报
回复
引用 5楼qq_30565871 的回复:
你TableView的Frame有问题,肯定不是顶在顶上的。你用Xcode分层显示看一看,UITableViewWrapperView这个子视图本来就比UITableView小,本来就是有偏移的
补充一下,这是在你有NavigationController的情况下。你TableView的Frame的y值是从最上边状态栏那开始算的,应该是0,而你写了64所以UITableViewWrapperView的纵坐标就是64➕64
CallMeCoderLeon 2015-10-27
  • 打赏
  • 举报
回复
你TableView的Frame有问题,肯定不是顶在顶上的。你用Xcode分层显示看一看,UITableViewWrapperView这个子视图本来就比UITableView小,本来就是有偏移的
BackNotGod 2015-10-17
  • 打赏
  • 举报
回复
tableView的类型改成Plain
HeiLap 2015-10-16
  • 打赏
  • 举报
回复
我的也是这样的一个问题!!!!请问解决了没有??
  • 打赏
  • 举报
回复
请问找到原因了么? 我也遇到这个问题

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧