swift - 带有 UICollectionView 的 UIToolBar

标签 swift uicollectionview uitoolbar

我有一个 UIToolbar View ,其中有一个 UICollectionView。

工具栏是一个带有 Collection View 的 TextView ,其中 Collection View 充满了用户提及。因此,如果我在 TextView 中键入“@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

最佳答案

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

我认为这是怎么回事,collectionView 的框架(它是工具栏的 subview )比工具栏的框架大,所以这就是为什么你不能点击它。

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

关于swift - 带有 UICollectionView 的 UIToolBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45681992/

相关文章:

ios - 数组有追加,但里面没有值

xcode - 在允许非模块化包含设置为 YES 的框架模块中包含非模块化 header

ios - 添加导航栏时缩小 Collection View

ios - UICollectionView 和自定义 UICollectionReusableView 不起作用

ios - 拉动刷新添加相同的数据已经有

ios - Admob 横幅线程 1 错误

ios - collectionView didSelectItemAt superview 没有选择正确的对象

ios - 如何在 UIToolBar 框架和 UIToolBarItems 之间的行分隔符上添加平滑的低阴影

iphone - 将带有两个 UIBarButtonItem 的 UIToolbar 添加到 UINavigationBar : poor UIToolbar and what about iPhone 4

ios - 在 TraitCollectionDidChange 之后重组 Toolbar 和 NavigationBar