UITableViewCell에서 만든 Button에 기능 추가
6885 단어 Swift
이번 내용
기능 설명
코드와 간략한 설명
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {}
cellHeartButton.tag = indexPath.row
는, Button 를 눌렀을 때에 어느 Button 가 눌렸는지, 판별하기 위해서 Button 에 Tag 를 설정하고 있습니다. cellHeartButton.addTarget(self, action: #selector(goodOrNoGood), for: .touchDown)
는, Button 를 눌렀을 때의 처리를 추가합니다.
let cellContentsArray = ["1","2","3","4","5","6","7","8","9","10"]
~~~一部省略~~~
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let cellContentsLabel = cell.contentView.viewWithTag(1) as! UILabel
let cellHeartButton = cell.contentView.viewWithTag(2) as! UIButton
cellContentsLabel.text = cellContentsArray[indexPath.row]
cellHeartButton.tag = indexPath.row
cellHeartButton.addTarget(self, action: #selector(goodOrNoGood), for: .touchDown)
return cell
}
#selector(goodOrNoGood)
if sender.backgroundImage(for: .normal) == UIImage(systemName: "heart"){}
에서 Button 이미지가 UIImage(systemName: "heart")
이면 UIImage(systemName: "heart.fill")
로 변경됩니다. goodOrNoGood
@objc func goodOrNoGood(sender:UIButton){
if sender.backgroundImage(for: .normal) == UIImage(systemName: "heart"){
sender.setBackgroundImage(UIImage(systemName: "heart.fill"), for: .normal)
print(sender.tag)
}else{
sender.setBackgroundImage(UIImage(systemName: "heart"), for: .normal)
print(sender.tag)
}
}
끝
지적, 질문 등 있으면, 코멘트까지 부탁드립니다.
Reference
이 문제에 관하여(UITableViewCell에서 만든 Button에 기능 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HiroUrata/items/2eaf648b66a681d11171
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(UITableViewCell에서 만든 Button에 기능 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HiroUrata/items/2eaf648b66a681d11171텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)