首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS 11 inputAccessoryView断裂

iOS 11 inputAccessoryView断裂
EN

Stack Overflow用户
提问于 2017-09-22 18:51:52
回答 2查看 1.7K关注 0票数 0

我在视图控制器上为我的UIToolBar /附件视图设置了以下设置

代码语言:javascript
运行
复制
@IBOutlet var inputFieldView: UIToolbar!
override var canBecomeFirstResponder: Bool{
    return true
}

override var inputAccessoryView: UIView?{
    return self.inputFieldView
}

然后在我的viewDidLoad里我有:

代码语言:javascript
运行
复制
    let seperator = UIView(frame: CGRect(x:0 , y: 0, width: ScreenSize.width(), height: 1))
    seperator.backgroundColor = UIColor.lightBackground
    self.inputFieldView.addSubview(seperator)
    self.inputFieldView.isTranslucent = false
    self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any)
    self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)
    self.inputFieldView.removeFromSuperview()

这对于ios版本10和9非常有用,它是一个带有“发送”按钮的文本视图。它位于屏幕的底部,当被按下时,它成为第一个响应器,允许键盘出现并正确地定位自己。

在ios 11中,当它位于底部时,我甚至不能点击它,所以我根本无法打字。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-22 19:45:04

解决了。看起来UIToolbar的UIToolbar在iOS 11中不能正常工作。

将其更改为UIView并删除

代码语言:javascript
运行
复制
self.inputFieldView.isTranslucent = false
self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any)
self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)

使其正常工作(并将其从xib中的UIView更改为UIToolbar )。

票数 0
EN

Stack Overflow用户

发布于 2017-10-16 08:59:57

这是iOS 11上的一个已知错误。UIToolbar子视图无法获得触摸事件,因为工具栏上的一些内部视图没有正确设置。

当前的解决方法是在添加子视图之前调用toolBar.layoutIfNeeded()。

就你而言:

代码语言:javascript
运行
复制
inputFieldView.layoutIfNeeded()

希望这将在下一个主要版本上得到解决。

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

https://stackoverflow.com/questions/46371441

复制
相关文章

相似问题

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