我正在努力在运行时向UICollectionViewCell
添加按钮,并在运行时根据事件的类型将按钮注册到事件。按钮的类型可以是,例如发声按钮和操作按钮,并且都应注册为单独的事件。
UI元素的层次结构类似于UICollectionView
-> UICollectionViewCell
-> StackView
->多个(UIView
-> UIButton
)。
问题是我无法注册.touchUpInside
事件。
我尚未尝试的是通过按钮的实例调用becomeFirstResponder()
,将事件方法移至UIViewController
内,并在建立视图层次结构后在cellForItemAt
方法中添加目标,尝试{ {1},在isUserInteractionEnabled
,true
,false
,UICollectionView
和UICollectionViewCell
上分别具有值UIStackView
和UIView
。 >
答案 0 :(得分:0)
尝试这种调用动作的方式。
UIApplication.shared.sendAction(#selector(didTapUtteranceButton), to: self, from: nil, for: nil)
代替这个:
utteranceButton.button.addTarget(self, #selector(didTapUtteranceButton), for: .touchUpInside)