首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导航栏中的UIButton不识别iOS 11中的抽头

导航栏中的UIButton不识别iOS 11中的抽头
EN

Stack Overflow用户
提问于 2017-09-19 17:45:40
回答 3查看 3K关注 0票数 7

我在导航栏中有一个UIButton,它位于UIImageUILabel的顶部。它在iOS 10中工作得很好,但是现在在iOS 11中它不识别来自我的@IBAction插座的任何水龙头。

我试着把水龙头出口移到酒吧按钮上,但那也不起作用。UIButton具有以下约束:

我通过给它一个绿色的背景来确认它在那里,所以我知道它是可见的和可用的。

知道怎么回事吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-20 15:07:12

我从另一个开发人员那里找到了一个解决方案。

您必须向视图中添加宽度和高度约束,该视图将所有内容包装在条形按钮项目中。因此,在我的例子中,标记为View的项需要约束。

以下是该做的事情:

步骤1

@IBOutletView创建到具有此导航条的视图控制器。

代码语言:javascript
复制
@IBOutlet weak var myView: UIView!

步骤2

在包含视图控制器中,在viewDidLoad()中添加约束:

代码语言:javascript
复制
myView.widthAnchor.constraint(equalToConstant: 63).isActive = true
myView.heightAnchor.constraint(equalToConstant: 33).isActive = true

在那之后,一切都像过去一样运转。

票数 14
EN

Stack Overflow用户

发布于 2018-02-22 13:12:26

加上克利夫顿·拉布姆,这就是我们要走的路。苹果改变了iOS 11中导航条的工作方式。这也可以在Storyboard中实现,但可以通过后代约束来实现。

UIBarButtonItem内部的自定义视图不能直接被赋予约束。相反,为其子视图提供约束,而自定义视图将隐式地获得其约束:

由于这些约束,自定义视图将隐式地获得其大小。

这将修复由iOS 11引起的所有奇怪行为。

票数 3
EN

Stack Overflow用户

发布于 2017-09-20 08:44:25

这很疯狂,但是:在我的情况下,我使用了自定义的NavBar和NavBarItems (在我的例子中是严谨的按钮)和重要的:以编程方式添加了UITapGestureRecognizer(用于关闭文本字段周围的键盘):

代码语言:javascript
复制
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
view.addGestureRecognizer(tap)

在iOS 10.3上-一切都好.在11 -我只有我的“踢踏舞”行动..。所以当我对TapGestureRecognizer不屑一顾NavBar上的行动开始起作用了.

所以,如果你在屏幕上有一些手势-试着移除它.

希望这对你有帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46306796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档