gpt4 book ai didi

ios - 带 UISearchBar 的 LeftBarButtonItem 在 iOS 11 上不可见

转载 作者:行者123 更新时间:2023-11-29 00:11:34 25 4
gpt4 key购买 nike

标题非常不言自明,在 iOS 10.3 上使用 UIBarButtonItem 并将自定义 View (在本例中为 UIStackView)分配给 LeftBarButtonItem > 导航栏在 iOS 11 上不可见。我还没有弄清楚为什么它不显示,但当我用键盘输入内容时,我的 TextChanged 事件逻辑起作用了!所以 UISearchView 在那里,但不可见:

enter image description here

这里是一些代码(它是用 C# 编码的,但它使用的是 Objective C 方法。):

var width = NavigationController.NavigationBar.Frame.Width;
var height = NavigationController.NavigationBar.Frame.Height;
_searchBarContainer = new UIStackView(new CGRect(0, 0, width * 0.75, height))
{
Alignment = UIStackViewAlignment.Center,
Axis = UILayoutConstraintAxis.Horizontal,
Spacing = 3
};

_uiSearchBar = new UISearchBar
{
BackgroundColor = UIColor.Clear,
BarTintColor = UIColor.Clear,
BackgroundImage = new UIImage(),
Placeholder = Strings.Search
};

_uiSearchBar.SizeToFit();
if (_iOS11)
{
_uiSearchBar.HeightAnchor.ConstraintEqualTo(44).Active = true;
}

_searchbarButtonItem = new UIBarButtonItem(_searchBarContainer);

NavigationItem.SetLeftBarButtonItem(_searchbarButtonItem, true);
ParentViewController.NavigationItem.LeftBarButtonItem = NavigationItem.LeftBarButtonItem;

在 iOS 10 上使用相同的代码即可实现。

最佳答案

请在将 _searchBarContainer 设置为左​​栏按钮项目之前尝试设置约束以适当调整其大小。从 iOS11 开始,导航栏使用自动布局。确保仅在存在 iOS 11 时添加约束,否则我在 iOS 9 导航栏中遇到问题。还要在 Dev forum 中查看此线程其中解释了条形项如何包装在堆栈 View 中,也许也有助于解决您的特定问题。

关于ios - 带 UISearchBar 的 LeftBarButtonItem 在 iOS 11 上不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46372650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com