簡體   English   中英

我如何處理對單個按鈕的多次單擊操作以進行api調用並從api獲取真實響應

[英]How can i handle the multiple click action to single button for api calling and get the true response from api

我只想知道處理單個按鈕上的多次單擊事件的方法(例如,如果我輕按多個按鈕,則可以使用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()
}

}

謝謝。

您必須在API調用時禁用按鈕,並且在處理完該響應后u會得到正確的響應時,您必須啟用它。

它對我有用。 我有同樣的問題。

如果您提到管理多個事件點擊...我建議使用tapGestureRecognizer或變體,例如,這些可以管理您評論的事件...:

  • 單擊,雙擊或多次單擊以觸發功能事件
  • 按住[UILongPressGestureRecognizer]

如果您在不同情況下引用稱為“ somes函數”的同一按鈕,則建議使用例如un tag按鈕:

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()
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM