gpt4 book ai didi

ios - 自定义 UIView addTarget 或 RxCocoa 订阅中的 UIButton 不起作用

转载 作者:行者123 更新时间:2023-11-28 05:38:15 24 4
gpt4 key购买 nike

我有一个名为 AppChooseField 的 UIView 子类,它创建并保存对 UILabelUIButton 对象的强引用。我在我的 UIViewController 中创建了一个 AppChooseField,将它添加到 VC 的 View 中,然后点击 AppChooseField 实例中的一个按钮,但该按钮不起作用,没有任何反应,< strong>flipHelp 方法未被调用。

class AppChooseField: UIView {

private var button: UIButton!
private var label: UILabel!
private var disposeBag = DisposeBag()

convenience init(frame: CGRect, text: String, description: String) {

self.init(frame: frame)
// Factory method for creating a UIButton, which being displayed without problems
self.button = UIButton.create(text: text, ...)

// Factory for creating a UILabel, which being displayed without problems
self.label = UILabel.create(text: description, ...)

// After that, setting constraints, adding subviews etc.
self.addSubview(self.label)
self.addSubview(self.button)
setConstraints()

// ***** Not calling flipHelp when button tapped
self.button!.rx.tap.subscribe(onNext: { [unowned self] in
self.flipHelp()
}).disposed(by: disposeBag)

// ***** Also not calling flip when button tapped
self.button!.addTarget(self, action: #selector(flipHelp), for: .touchUpInside)


DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
self.flipHelp() // flipHelp is called successfully.
}
}

@objc func flipHelp() {
print("Help!")
}
}

我希望我的示例足以说明问题。有什么我不明白的吗?是否有一些我遗漏的与内存相关的问题?

谢谢!

最佳答案

事件没有响应,我理解有两种情况

1.userInteractionEnabled = NO

<强>2。 subview 超出父 View 范围

没看到按钮的布局,你的约束可能有点问题,可以改成:

self.addSubview(self.label)
self.addSubview(self.button)
setConstraints()

关于ios - 自定义 UIView addTarget 或 RxCocoa 订阅中的 UIButton 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57845316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com