2017-02-15 1 views
1

Swift에서 확인란을 구현하려고합니다. 시작하려면 다른 post의 대답을 사용했습니다. 먼저 스토리 보드에 버튼을 만들고 클래스 체크 박스를 지정했습니다. 그 후에 클래스 체크 박스를 만들었습니다. 그것은 현재 그렇게 보입니다. 그가 다른 판을 신속하게 사용했기 때문에 나는 다른 지부에서 약간의 조정을했다.Swift에서 확인란을 구현합니다.

class checkbox: UIButton { 

    //Images 
    let checkedImage = UIImage(named: "selected")! as UIImage 
    let uncheckedImage = UIImage(named: "rectangle")! as UIImage 

    // Bool property 
    var isChecked: Bool = false { 
     didSet{ 
      if isChecked == true { 
       self.setImage(checkedImage, for: .normal) 
      } else { 
       self.setImage(uncheckedImage, for: .normal) 
      } 
     } 
    } 

    func buttonClicked(sender: UIButton) { 
     if (sender == self) { 
      if self.isChecked == true 
      { 
       self.isChecked = false 
      } 
      else 
      { 
       self.isChecked = true 
      } 
     } 
    } 


    override func awakeFromNib() { 
     self.addTarget(self, action: Selector(("buttonClicked:")),for:UIControlEvents.touchUpInside) 
     self.isChecked = false 
    } 

    } 

그러나 이제 확인란을 클릭하면 항상 AppDelegate에서 다음 오류가 발생합니다.

terminating with uncaught exception of type NSException 

답변

0
확인란을 만들 수

가장 안전한 방법 :

가 추가 UIButton

이 개 프로젝트에 이미지를 추가 ViewController에 : 1.checked.png을 2.un - checked.png

checked 또는 un-checked 이미지를 단추 배경 또는 단추 이미지로 설정하십시오.

단추 텍스트를으로 설정하십시오.

저를 믿어 의심치 않습니다.

+0

하지만 어떻게 확인란을 선택하거나 선택 취소 할 수 있습니까? – fabioha

+0

@fabioha 그의 예제에서는 체크/체크되지 않은 이미지를 이미 만들었 기 때문에 버튼을 클릭하기 만하면됩니다. –

+0

버튼을 클릭 할 때마다 사진을 변경하면됩니까? 소리가 간단합니다. – fabioha

1

이 시도 -

class CheckBoxButton: UIButton { 

override func awakeFromNib() { 
    self.setImage(UIImage(named:"selected"), for: .selected) 
    self.setImage(UIImage(named:"rectangle"), for: .normal) 
    self.addTarget(self, action: #selector(CheckBoxButton.buttonClicked(_:)), for: .touchUpInside) 
} 

func buttonClicked(_ sender: UIButton) { 
    self.isSelected = !self.isSelected 
} 

} 
+0

나를 위해 일했습니다. 감사합니다. – fabioha

0

는 또한 최근 확인란을했고 내가 대신 내 자신을 만드는, 그에 대한 cocoapod을 사용했다. 그것은 당신이 색상, 애니메이션, 모양과 크기를 포함한 모든 것을 선택할 수 있습니다! 어쩌면 도움이 : 정말에만 설치하고 앱 작업이 5 분 소요

BEM CHECKBOX

.

관련 문제