2017-12-20 4 views
-5
@IBAction func houseLock(_ sender: UIButton) { 
    self.houseLock.setImage(#imageLiteral(resourceName: "ic_lock_open_3x"),forState: UIControlState.normal) 
    self.setImage(#imageLiteral(resourceName: "ic_lock_outline_3x"), forState: UIControlState.selected) 
} 

클릭 할 때 버튼 이미지를 변경하면됩니다. 클릭하면 다시 잠금 버튼이되고 다시 클릭하면 잠금 해제됩니다. 비슷한 문제가있는 스택에서 몇 가지를 발견했지만 그 해답은 완전히 설명되지 않았습니다. 나는이 문제에 익숙하지 않아 어떤 사람들이 내가 겪고있는 오류를 설명 할 수 있는지 궁금해하고 있었다. '(UIButton) ->()'형'(UIButton) ->()'유형의 값이 'setImage'회원이 없습니다.

값은 부재 'setImage'

EDIT ****

IBOutlet weak var button: UIButton! 

IBAction func button(_ sender: UIButton) { 
    self.button.setImage(UIImage(imageLiteralResourceName: "ic_lock_outline_3x"), for: .normal) 
    self.button.setImage(UIImage(imageLiteralResourceName: "ic_lock_open_3x"), for: .selected) 

} 
+0

이것은 신속하지 않습니다 objectiveC –

+8

코드가 무작위로 복사 및 붙여 넣은 것 같습니다. 'super.viewDidLoad()'는'viewDidLoad()'에 속하며,'self'는 메소드가 위치한 둘러싼 클래스이고'houseLock'은 프라퍼티와 메소드 이름으로 사용됩니다. 그건 꽤 혼란 스럽네요. – vadian

+0

네 말이 맞아. 내가 시도한 몇 가지 물건에서 그걸 꺼내는 걸 잊어 버렸어 ... 내 잘못 – Matherz

답변

2

@IBAction 기능 버튼과 동일한 이름이 과정이 발생했다가 없다 이름 모호성. 함수 이름을 다른 것으로 변경하십시오.

@IBAction func houseLockPressed(_ sender: UIButton) 

또한 세 번째 줄에 단추의 이름이 누락되었습니다. 단추를 나타내는 selfself.houseLock으로 변경하십시오.

+0

그러나 OP는 버튼을 분명히 참조하는'self.'를 사용합니다. – Xcoder

+3

@Xcoder'self.' 또한 클래스에 속하기 때문에 함수를 참조합니다. – the4kman

+0

흠 ... 좋은 지적이야. – Xcoder

관련 문제