【问题标题】:Increase UINavigationBar title font size on scroll滚动时增加 UINavigationBar 标题字体大小
【发布时间】:2015-07-03 03:03:07
【问题描述】:
我今天看到了这种效果,导航栏标题似乎在视图中开始,然后在您滚动页面时缩小并向上移动到导航栏的标题中,然后在滚动回顶部时返回到其原始状态。
有人对这是如何完成的有任何见解吗?是完全使用导航栏,还是使用高度缩小且背景颜色变暗的 UIView 来模拟它?也许标题是转换为 UIImage 并按比例缩小而不是字体大小减小的标签?
只是推测可能的技术。
很想听听这方面的意见。提前致谢。
【问题讨论】:
标签:
objective-c
swift
uinavigationbar
【解决方案1】:
是的,您可以根据您的手势识别器更改字体的大小和导航栏的来源。
navigationBar.frame.origin.y = -10
会将导航栏向上移动 10 点。可以使用
更改字体
if let font = UIFont(name: "Lato-Light.ttf", size: 34) {
UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: font]
}
这种格式是因为使用强制解包! 会导致应用程序因 UIFont 而崩溃
在这种情况下,font 可以是一个变量,您可以在其中调用具有相同字体和不同大小的普通 init。
每当手势识别器更新其值或滚动位置时,都应执行这两个操作。不过,您可能需要也可能不需要重绘视图。