大佬教程收集整理的这篇文章主要介绍了ios – 为什么我的UISearchBar在成为第一响应者之后的宽度为0?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
但当它成为第一响应者时,UISearchBar的宽度变为0,它看起来像这样:
现在唯一的约束是右边的UIButton的宽度是44pt,整个堆栈视图固定在屏幕的顶部和侧面.这是控制台打印出来的:
我不太熟悉NSLayoutConsTraint,但显然有些东西与按钮上的44pt宽度约束相冲突.为什么UISearchbar的宽度变为0?
这是我的代码:
override func didTransition(to presentationStyle: MSmessagesAppPresentationStylE) { if presentationStyle == .expanded { searchController.searchBar.becomeFirstResponder() searchController.searchBar.TintColor = UIColor.white } } func didDismissSearchController(_ searchController: UISearchController) { requestPresentationStyle(.compact) } override func viewDidLoad() { super.viewDidLoad() configureSearchController() } func configureSearchController() { searchController = UISearchController(searchResultsController: nil) searchController.dimsBACkgroundDuringPresentation = false searchController.searchBar.placeholder = "Search here..." searchController.searchBar.sizeToFit() searchController.searchBar.isTranslucent = false searchController.searchBar.delegate = self searchController.delegate = self searchController.searchBar.barTintColor = addButton.BACkgroundColor stackView.insertArrangedSubview(searchController.searchBar,at: 0) //This removes the hairline let color = addButton.BACkgroundColor searchController.searchBar.layer.borderWidth = 1 searchController.searchBar.layer.borderColor = color?.cgColor } func searchBarShouldBeginEdiTing(_ searchBar: UISearchBar) -> Bool { if presentationStyle == .expanded { return true } else { requestPresentationStyle(.expanded) return false } }@H_404_4@
对于按钮前沿的输出显然有一个约束 – 但是你说你只限制了按钮的宽度.输出表示您将按钮的前沿约束到堆栈视图的前沿.
您当然可以将按钮的前沿限制在堆栈视图的前沿,并使按钮44变宽 – 如果按钮位于搜索栏的左侧.但是,因为按钮位于搜索栏的右侧,所以按钮可以是44宽或者可以约束到堆栈视图的前沿 – 但不能同时限制在两者之间.
因此,iOS打破了44宽度约束,并将按钮一直延伸到左侧,以便它与堆栈视图的前沿对齐.
这不一定是结果.我想Apple可以编程Xcode来忽略你拖动按钮的位置并且只是遵守约束,即移动按钮使其前缘和堆栈视图的前缘对齐,并给按钮宽度为44,因此将搜索栏移动到按钮右侧.但是,显然Apple更倾向于在水平堆栈视图中对项目的排序,即因为您将按钮放在搜索栏的右侧,这就是它保留的位置.
@H_404_4@ @H_404_4@以上是大佬教程为你收集整理的ios – 为什么我的UISearchBar在成为第一响应者之后的宽度为0?全部内容,希望文章能够帮你解决ios – 为什么我的UISearchBar在成为第一响应者之后的宽度为0?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。