ios - UISearchController 聚焦时动画损坏
问题描述
我在 UISearchController 动画被点击时发现了一个问题,我设法在我将附加的一个简单项目中进行复制。
基本上,当我点击 UISearchController 时,它下面的内容会在动画结束之前捕捉到 view.safeAreaLayoutGuide 的顶部。这会导致动画不那么流畅。
您可以在这个小视频中看到发生的情况: https ://streamable.com/y1tzn
我在 ViewController 中做的唯一事情是:
private lazy var text: UILabel = {
let label = UILabel()
label.text = "dfgh"
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
setupSearchController()
setupLabel()
}
func setupSearchController() {
let searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.placeholder = "Search for names and emails"
navigationItem.searchController = searchController
}
func setupLabel() {
view.addSubview(text)
text.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
text.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
}
在 SceneDelegate 上:
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: windowScene)
let vc = ViewController()
let nc = UINavigationController(rootViewController: vc)
window?.rootViewController = nc
window?.makeKeyAndVisible()
有人对如何解决此问题有任何想法吗?
感谢大家
编辑:添加了 Git 回购
解决方案
推荐阅读
- python - “ValueError:值的长度与索引的长度不匹配”
- flutter - FlutterQuill 编辑器的初始值
- php - 如何通过 sftp 在 laravel 中将文件从一台远程服务器复制到另一台服务器
- reactjs - 删除或禁用在动态表单中先前行中选择的值添加行 React JS 17.0.1
- c# - 如何从库项目中的主项目访问窗口?
- eclipse - 在junit中按顺序运行一个类两次
- json - curl http 请求返回错误/非法格式或缺少 REST Api 的 URL
- python - python中的实例方法调用
- android - 通过intent-filter kotlin从其他应用程序接收数据?
- unity3d - 如何停止在 Unity2D 中获取 UI 元素的鼠标位置?