请原谅我使用晦涩的标题,因为我不确定如何描述这个问题。
最近,许多 iOS 应用程序都使用滚动 UI 设计模式,这有助于最大化屏幕空间,通常会在用户向下滚动时隐藏标题。
例如,Instragram 的主视图在顶部有 Instragram 标题。在此 View 上向上滚动会使标题固定在顶部,并且 View 会正常弹回到内容的顶部。但是向下滚动,标题作为内容的一部分,为额外的 44 点垂直空间让路。
可能是因为我有一段时间没有做太多的 iOS 工作,但我不能轻易弄清楚如何最好地实现它?为可怕的描述道歉。
最佳答案
如果标题无论如何都保持不变,请在 ScrollView 顶部使用单独的 View 。 如果您使用 UITableView,则可以使用节标题。
编辑 使用此代码:
- (void)scrollViewDidScroll:(UIScrollView*) scrollView
{
CGPoint offset = scrollView.contentOffset;
CGRect headerFrame = _headerView.frame;
if(offset.y > 0){
headerFrame.origin.y = offset.y;
}
else{
headerFrame.origin.y = 0.0;
}
[_headerView setFrame:headerFrame];
}
(假设 _headerView 是您的页眉,位于 ScrollView 的顶部,而不是其内部。此外, ScrollView 和页眉都从其父 View 的顶部开始,y==0。此外,您的 View Controller 必须设置为 ScrollView 的委托(delegate))
这段代码是我凭内存写的;尚未对其进行测试,但最多只需要进行调整。
关于iOS UIView 滚动 UI - 如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11412584/