나는 selector 메소드가 인자를 포함 할 수 없다는 것을 이해하지만, 지금 내가하고 싶은 일에 어떻게 가야 하는지를 놓치고있다.이미지 탭에서 매개 변수가있는 메서드를 호출하는 방법은 무엇입니까?
내 목표는 5 개의 UI 이미지 뷰를 가지며 각 이미지 뷰에는 별 이미지가 있습니다. 이미지가 탭되면, 별은 이미지를 회색 또는 파란색으로 바꿔야합니다.
내 질문은 탭 한 스타에 따라 별 이미지 변경을 처리하는 방법 하나만 작성하는 것입니다. 이상적으로는, 가능하지 않다는 것을 알고 있지만 이미지를 메소드의 인수로 보내고 싶습니다. 이 문제를 해결할 수있는 유일한 방법은 5 개의 별 각각에 대해 메서드를 작성하는 것이지만 코드가 동일하므로 더 좋은 방법이 있어야한다고 생각합니다. 보기에
는 부하 않았다
// add tap recognition to rating stars
let tapGestureRecognizerOne = UITapGestureRecognizer(target:self, action:#selector(self.changeStar))
starOneEditImage.userInteractionEnabled = true
starOneEditImage.addGestureRecognizer(tapGestureRecognizerOne)
let tapGestureRecognizerTwo = UITapGestureRecognizer(target:self, action:#selector(self.changeStar))
starTwoEditImage.userInteractionEnabled = true
starTwoEditImage.addGestureRecognizer(tapGestureRecognizerTwo)
let tapGestureRecognizerThree = UITapGestureRecognizer(target:self, action:#selector(self.changeStar))
starThreeEditImage.userInteractionEnabled = true
starThreeEditImage.addGestureRecognizer(tapGestureRecognizerThree)
let tapGestureRecognizerFour = UITapGestureRecognizer(target:self, action:#selector(self.changeStar))
starFourEditImage.userInteractionEnabled = true
starFourEditImage.addGestureRecognizer(tapGestureRecognizerFour)
let tapGestureRecognizerFive = UITapGestureRecognizer(target:self, action:#selector(self.changeStar))
starFiveEditImage.userInteractionEnabled = true
starFiveEditImage.addGestureRecognizer(tapGestureRecognizerFive)
을 그리고 방법은 이미지의 탭에 전화 :
func changeStar() {
print ("star tapped")
}
이것은 완벽하게 작동합니다. 감사합니다. 당신은 너무 빨리 대답해서 다른 9 분 동안 대답을 받아 들일 수 없으므로 돌아와서해야 할 것입니다. – Christie