iPad上添加顶部导航栏会遮挡控制器的view展示

本文介绍了在进行iPad应用开发时遇到的一个常见问题:如何解决顶部导航栏导致的视图遮挡现象。通过调整edgesForExtendedLayout属性可以有效避免视图被遮挡,并提供了具体的实现方法。

第一次做iPad开发,需要用到顶部导航栏,但是直接设置顶部导航栏控制器的view并不会下移,导致视图被遮挡,通过设置

self.edgesForExtendedLayout = UIRectEdgeNone;

便能适配.

edgesForExtendedLayout
这个属性是UIExtendedEdge类型,用来制定视图的哪条边需要扩展。
比如UIRectEdgeTop,它把视图区域顶部扩展到statusBar(以前是navigationBar下面);
UIRectEdgeBottom是把区域底部扩展到屏幕下方边缘。默认值是UIRectEdgeAll。

对于解决web移动端页面上滑时顶部导航遮挡一半的问题,可以参考以下方法: - **添加底部空白块**:在webview添加一个没有内容的块,给这个块设置下边距,下边距宽度为底部导航的高度加上移动端的安全区域到底部边界的距离(safe - area - inset - bottom),再将下边距设置为白色。这样做可以防止底部导航遮盖页面内容,对于解决顶部导航遮挡可能也有间接帮助,因为页面布局的调整可能会影响整体的显示效果 [^1]。 - **使用API调整webview高度**:通过`getAppWebview`、`getSystemInfo`来调整webview高度。在`onLoad`函数中,先定义动态的高度变量和动态状态栏高度变量,使用`uni.getSystemInfo`获取当前设备的具体信息,包括状态栏高度和窗口高度。然后获取当前web - view,通过`setTimeout`延迟200ms后设置web - view距离顶部的距离以及自身的高度。确保webview的布局合理,避免因布局问题导致顶部导航遮挡 [^2]。 - **固定导航栏**:当用户滑动页面时,将导航栏固定在页面上方。将相关代码放在jquery的`scroll`事件当中,即`$(window).scroll(function(){... });`。根据页面滚动的位置来改变导航栏的样式。当`$(document).scrollTop() < 90`时,设置导航栏的`position`为`relative`;当滚动位置超过90px时,设置导航栏的`position`为`fixed`,并根据移动端和PC端进行不同的适配,以保证导航栏始终可见且布局合理 [^3]。 以下是固定导航栏的示例代码: ```javascript $(window).scroll(function(){ if($(document).scrollTop() < 90){ $('#mynavbar').css({ "position":'relative', 'margin-left':'0px', 'margin-top':'0px' }); $('#mottopal').css({ 'margin-top':'0' }); }else{ $('#mynavbar').css({ 'z-index':'2', "position":'fixed', 'margin-left':'0px', 'margin-top':'-90px', 'width':'100%' }); if(navigator.userAgent.match(/mobile/i)){ $('#mottopal').css({ 'margin-top':'144px' }); }else{ $('#mottopal').css({ 'margin-top':'45px' }); } } }); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值