我正在尝试在我的新应用程序上实现iOS 11本机大导航栏标题.通过在viewDidLoad()中调用以下函数:
navigationController?.navigationBar.prefersLargeTitles = true navigationController?.navigationItem.largeTitleDisplayMode = .always
但是,当我开始向上滚动时(主视图中的唯一视图是滚动视图),滚动使大标题以比手指实际滚动更快的速度消失.(也就是说,如果我在屏幕上移动2厘米,滚动视图实际滚动超过2厘米,直到大标题收缩到'通常'大小.)
下面是滚动我的应用程序的GIF.我实际上移动很少,它会自动滚动那么多.这与Apple制造的应用程序(例如,应用程序商店,如我的应用程序下方所示)不同.
有没有人有解决这种异常行为的解决方案?
编辑:每个请求,我添加当前的视图层次结构.我的代码中没有任何特殊内容,我只需设置标题和标记即可prefersLargeTitles.
switch在Kotlin 的替代品是when.因此,在回收器视图适配器中,当我返回视图类型时,我使用when:
override fun getItemViewType(position: Int): Int {
when (position) {
0 -> return ItemViewType.TITLE.type
1 -> return ItemViewType.SUBTITLE.type
2 -> return ItemViewType.ITEM.type
else -> return -1
}
}
Run Code Online (Sandbox Code Playgroud)
但是,上述声明发出了警告信息Return can be lifted out of 'when'.
有谁知道什么是正确的使用方式when?如何解决上述问题?
安装Xcode 11后,在iOS 12移动设备上测试时,不断出现以下错误。它总是使应用程序崩溃。
*** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[<UISegmentedControl 0x107c7ec90> setValue:forUndefinedKey:]: 此类与键 selectedSegmentTintColor 的键值编码不兼容。”
在 iOS 13 上,它不会崩溃。