当在Safari中滚动内容时,标题栏将动画为较小版本的自身.实现这一点的最好方法是什么?
目前,我正在改变框架的大小:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { // // Table view // CGFloat currentPosition = scrollView.contentOffset.y - CGRectGetHeight(self.tableView.tableHeaderView.frame) + CGRectGetHeight(self.navigationController.navigationBar.frame) + CGRectGetHeight([[UIApplication sharedApplication] statusBarFrame]); if ([scrollView isKindOfClass:[HeadlinesHeadlinesTableView class]]) { ScrollDirection scrollDirection; if (self.lastContentOffset > scrollView.contentOffset.y) { scrollDirection = ScrollDirectionDown; } else if (self.lastContentOffset < scrollView.contentOffset.y) { scrollDirection = ScrollDirectionUp; } self.lastContentOffset = scrollView.contentOffset.y; CGRect frame = self.navigationController.navigationBar.frame; CGFloat minimumFrameHeight = 30.0f; CGFloat maximumFrameHeight = 44.0f; CGFloat titleSize = [[self.navigationController.navigationBar.titleTextAttributes objectForKey:NSFontAttributeName] pointSize]; CGFloat minimumTitleHeight = 22.0f; CGFloat maximumTitleHeight = 30.0f; if (currentPosition > 0 && CGRectGetHeight(frame) >= minimumFrameHeight && CGRectGetHeight(frame) <= maximumFrameHeight) { switch (scrollDirection) { case ScrollDirectionUp: frame.size.height--; titleSize--; break; case ScrollDirectionDown: frame.size.height++; titleSize++; break; default: break; } if (CGRectGetHeight(frame) <= minimumFrameHeight) { frame.size.height = minimumFrameHeight; } if (CGRectGetHeight(frame) >= maximumFrameHeight) { frame.size.height = maximumFrameHeight; } if (titleSize <= minimumTitleHeight) { titleSize = minimumTitleHeight; } if (titleSize >= maximumTitleHeight) { titleSize = maximumTitleHeight; } } [self.navigationController.navigationBar setFrame:frame]; [self.navigationController.navigationBar setTitleTextAttributes: @{ NSFontAttributeName : [UIFont fontWithName:@"Canterbury-Regular" size:titleSize] }]; } }
自然而然,这种方式并不顺利,代码很多,更不用说我需要淡出条形按钮项目了.
提前致谢!
解决方法
看看
AMScrollingNavbar,它已经有褪色的支持. 您可以尝试更改NavigationBar的字体大小,使标题更小.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。