我只想知道处理单个按钮上的多次单击事件的方法(例如,如果我多次点击FACEBOOK之类的按钮,那么它可能会完美工作) 下面的代码给了您一些想法,如果有合适的解决方案,请尽快给我。
LikeViewController类:UIViewController {
//MARK:- Outlets
@IBOutlet weak var btnLike: UIButton!
@IBOutlet weak var lblDescription: UILabel!
//MARK:- Variables
var objModelWatchList:WatchListModel?
var objUser = WatchListModel()
//MARK:- Lifecycle methods
override func viewDidLoad() {
super.viewDidLoad()
getWatchList()
}
//MARK:- Functions
//Function for prepare UI
func prepareUI() {
btnLike.isSelected = isLike()
}
//Function for prepare data from api
func getWatchList() {
objUser.videoId = 216
objUser.type = "VIDEO"
APIService.sharedInstance.getWatchList(parameters: objUser.toDictionary() as [String : AnyObject], success: { (dataSuccess) -> (Void) in
self.objModelWatchList = dataSuccess
DispatchQueue.main.async {
self.prepareUI()
self.lblDescription.text = self.objModelWatchList?.message
}
}) { (resultFailure) -> (Void) in
print(resultFailure)
}
}
//Function to varify the status of like
func isLike() -> Bool {
return objModelWatchList!.status == 1 ? true : false
}
//MARK:- Actions
@IBAction func btnLikeClicked(_ sender: UIButton) {
sender.isSelected = !sender.isSelected
self.getWatchList()
}
}
谢谢。
答案 0 :(得分:0)
您必须在API调用时禁用按钮,并且在处理该响应后u会得到正确的响应时,您必须启用它。
它对我有用。我有一个同样的问题。
答案 1 :(得分:0)
如果您提到管理多个事件点击...我建议使用tapGestureRecognizer或变体,例如,这些可以管理您评论的事件...
如果您在不同情况下引用称为“ somes函数”的同一按钮,我建议例如使用un标签按钮:
function examplefunctionA(){
//Another Proccess
//Another Proccess
self.button.tag = 2
}
function examplefunctionB(){
//Another Proccess
//Another Proccess
self.button.tag = 1
}
func buttonclicked(sender: UIButton) {
if sender.tag == 1 {
examplefunctionA()
}else if sender.tag == 2 {
examplefunctionB()
}
}