【问题标题】:UIToolBar with UICollectionView带有 UICollectionView 的 UIToolBar
【发布时间】:2017-08-14 19:48:13
【问题描述】:

我有一个 UIToolbar 视图,其中有一个 UICollectionView。

工具栏是一个带有集合视图的文本视图,其中集合视图填充了用户提及。因此,如果在文本视图中输入“@m”,它将显示以字母“m”开头的用户名。

它曾经不在工具栏中,但我们意识到它没有通过键盘的交互式关闭正确关闭,并将其添加到工具栏中修复了该问题。 (它会在交互式关闭期间悬停在屏幕中间并且不会消失)

但是现在所有的用户交互都不再适用了(尽管在 IB 中启用了它)

这里是工具栏的设置:

override var canBecomeFirstResponder: Bool{
    return true
}

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

//viewDidLoad里面:

    let separator = UIView(frame: CGRect(x:0 , y: 0, width: ScreenSize.width(), height: 1))
    separator.backgroundColor = UIColor.lightBackgroundGrey
    self.typingView.addSubview(separator)
    self.typingView.isTranslucent = false
    self.typingView.setShadowImage(UIImage(), forToolbarPosition: .any)
    self.typingView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)
    self.typingView.removeFromSuperview()
    self.setupMentionableCollectionView() //Sets delegate and data source only

【问题讨论】:

    标签: swift uicollectionview uitoolbar


    【解决方案1】:

    由于您在 IB 中创建了工具栏,因此您可能对工具栏和/或 collectionView 有高度限制,因此您应该在 collectionView 的 contentSize 发生变化时更新这些限制。

    我认为发生了什么是collectionView(它是工具栏的子视图)的框架大于工具栏的框架,所以这就是你不能点击它的原因。

    只需执行self.collectionViewHeightConstraint.constant = whateverself.typingViewHeightConstraint.constant = whatever + defaultHeight 即可解决您的问题。

    【讨论】:

    • 嘿,谢谢伙计,在使工具栏的视图始终增加高度以包括集合的高度之后,一切都开始工作了。简单!
    猜你喜欢
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 2014-08-21
    相关资源
    最近更新 更多