tableview的uitableViewwrapperView下移

本文探讨了iOS应用中navigationController自动调整scrollView Insets的问题。当automaticallyAdjustsScrollViewInsets属性设为yes时,如何避免视图重复偏移,并提供了一个使用Autolayout结合设置self.edgesForExtendedLayout的解决方案。
摘要由CSDN通过智能技术生成
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的目的是为了界面重载时(如切换打电话状态)也能重新调整界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值