首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在iOS 7中,当使用半透明的UINavigationBar时,如何滚动到UIScrollView的顶部?

在iOS 7中,当使用半透明的UINavigationBar时,如何滚动到UIScrollView的顶部?
EN

Stack Overflow用户
提问于 2013-11-15 00:33:32
回答 3查看 4.2K关注 0票数 3

在iOS 6中,可以使用以下方法滚动到UIScrollView的顶部:

代码语言:javascript
运行
复制
[scrollView setContentOffset:CGPointZero animated:YES];

如果在iOS 7中使用带有半透明导航条的代码,则得到的结果在技术上是正确的,但不适合用户使用。滚动视图的顶部将定位到屏幕的原点。

如何将滚动视图的顶部定位到导航栏的底部?我正在寻找一个不是硬编码的解决方案,因为在我的应用程序中,有时状态栏和导航栏可以被隐藏。此外,我想保持半透明的效果,而不是遮掩和做self.edgesForExtendedLayout = UIRectEdgeNone

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-15 01:00:50

不要使用硬编码的值,而是使用新的API:

代码语言:javascript
运行
复制
[self.scrollView setContentInset:UIEdgeInsetsMake(self.topLayoutGuide.length, 0, self.bottomLayoutGuide.length, 0)];

您正在将滚动视图的内容嵌入设置为顶部和底部布局指南。因此,如果您有一个导航栏,即44分和20分的状态栏,没有状态栏,它将是64点顶部(在纵向)和0点底部。

您应该在viewDidLayoutSubviews中这样做。

票数 5
EN

Stack Overflow用户

发布于 2015-11-20 05:41:49

您必须使用此方法-> setContentOffset:动画:

代码语言:javascript
运行
复制
[_scrollView setContentOffset:CGPointZero animated:YES];
票数 1
EN

Stack Overflow用户

发布于 2013-11-15 00:49:16

只需使用-60作为y坐标,或者更好的是,动态获取statusbar和导航栏的高度,因为它们都会改变。

我想请参阅UIApplication的statusBarFrame和statusBarFrame。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19991301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档