文本框变为活动状态时如何触发动作

时间:2018-12-14 22:19:34

标签: swift uicollectionview uitextfield custom-cell

我有一个由自定义单元格组成的CollectionViewController。此时,我的自定义单元仅由UITextField组成。当我在一个textFields中单击以开始键入时,我想在单元格上触发动画。由于某些原因,我无法弄清楚为什么在textField内部单击时未触发动画。当我遵循UItextFieldDelegate协议并尝试通过DidBeginEditing方法触发该操作时,它将不起作用。当我尝试通过UIControlEvents.touchDown触发动画时,它也不起作用。

@objc func animateCell(textField: UITextField) {  
    print("TextField active")
   let cell = collectionView.cellForItem(at: indexPath)
   UIView.animate(withDuration: 0.5, delay: 0, options: .allowAnimatedContent, animations: ({
   cell?.frame = collectionView.bounds
    collectionView.isScrollEnabled = false
  }), completion: nil)
}

1 个答案:

答案 0 :(得分:1)

代替textFieldDidBeginEditingtry using textFieldShouldBeginEditing:(并确保从该方法返回true,因为要允许用户键入:-)。

此外,由于您说该方法只有在您单击第一个选定文本框之外的其他文本框后才会触发,因此在显示集合视图时,手动为最初选择的文本框触发动画。