使用AutoLayout无法正确呈现的动态CollectionViewCell大小

时间:2016-05-03 01:36:43

标签: ios autolayout uicollectionview

我目前在IB中设置了UICollectionView,如下所示: enter image description here

当键盘出现时,底部约束使其常量更改为键盘的高度:

 func keyboardWillShow(notification: NSNotification) {
    let keyboardHeight = getKeyboardHeight(notification)
    keyboardHeightConstraint.constant = keyboardHeight + 20

    print(cardCollectionView.frame)

    self.cardCollectionView.configureCollectionView()
    self.cardCollectionView.reloadInputViews()
}

configureCollectionView()的位置:

    func configureCollectionView() {

    self.backgroundColor = UIColor.clearColor()

    // Create the layout
    let space = 10.0 as CGFloat
    let flowLayout = UICollectionViewFlowLayout()

    let width = (self.frame.size.width) - 4 * space
    let height = (self.frame.size.height)

    let edgeInsets = UIEdgeInsetsMake(0, 2 * space, 0, 2 * space)

    // Set top and bottom margins if scrolling horizontally, left and right margins if scrolling vertically
    flowLayout.minimumLineSpacing = space
    flowLayout.minimumInteritemSpacing = 0

    // Set horizontal scrolling
    flowLayout.scrollDirection = .Horizontal

    // Set edge insets
    flowLayout.sectionInset = edgeInsets
    flowLayout.itemSize = CGSizeMake(width, height)
    self.setCollectionViewLayout(flowLayout, animated: true)

    // Always allow it to scroll
    self.alwaysBounceHorizontal = true

}

现在键盘出现时出现问题: enter image description here

当键盘首次出现时,CollectionView会调整大小,然后调用configureCollectionView()。因此,CollectionViewCell也应该调整大小,但它看起来像是被调整大小的CollectionView的边界剪切。

这可以看作是GIF中的第二张图像(键盘出现后)底部没有圆角,4个按钮就在那里。

似乎当我点击另一个TextView时,CollectionViewCell会恢复到正确的大小,尽管它仍然有一个alpha = 1,即使我的代码中没有任何地方也设置了alpha 1}}到一个。

为了得到我最后想要的结果,我不得不关掉键盘。

我的实现有什么问题,在显示键盘而不必完成上述所有操作时,我可以做些什么来达到我想要的效果?

0 个答案:

没有答案