2014-12-04 1 views
5

기본적으로 메인 스크린에는 3 개의 버튼이 있습니다.스위프트 - UIButton을 탭할 때 텍스트의 색상과 크기 변경

이 버튼 중 하나를 선택하면 선택한 버튼의 텍스트가 굵게 변경되고 색상이 변경됩니다 (파란색).

다른 버튼을 선택하면 새로 선택된 버튼이 굵게 변경되고 색상이 변경되고 (파란색), 이전에 선택한 버튼이 정상으로 돌아가고 싶습니다. (굵게 및 검은 색 텍스트)

나는이 버튼을 사용하여 스크립트에 작업을 보냅니다.

이것은 내가 가지고있는 것인데, 나는 제대로 작동하지 않는 것 같습니다. 도움을 많이 주시면 감사하겠습니다!

@IBAction func buttonOne(sender: UIButton){ 
    sender.setTitleColor(UIColor.blueColor(), forState: UIControlState.Highlighted) 
} 

나는 하이라이트를 시도하고 UIControlState에서 .Selected도 작동하지 않는 것 같습니다. 나는 또한 다음을 시도했지만, 나는 그것을 작동시키지 못한다.

@IBAction func buttonOne(sender: UIButton){ 
    sender.titleLabel?.textColor = UIColor.blueColor() 
} 

내가 보낸 사람이있는 UIButton, 그리고 이후이 떨어져 값을 복용하고 일하는 것이 재설정 클릭 된 버튼,라고 생각. 나는 뭔가를 놓치고 있다고 믿는다.

UIControlState.Normal

Selected 대부분의 경우 아무 작업도 수행하지 않습니다 원하는처럼

답변

4

는 소리 감사하고 버튼을 눌러있는 동안 만 Highlighted입니다. 동일한 기능을 각 버튼에 동작을 연결

@IBAction func buttonPressed(sender: UIButton) { 
    sender.titleLabel!.textColor = UIColor.blueColor() 
    sender.transform = CGAffineTransformMakeScale(0.8, 0.8) 
} 

@IBAction func buttonReleased(sender: UIButton) { 
    sender.titleLabel!.textColor = UIColor.redColor() 
    sender.transform = CGAffineTransformIdentity 
} 
+0

고마워요! 색상이 검은 색으로 바뀌 었습니다. 필자는 지난 1 시간 동안 내 머리를 내 모니터에 대고 머리를 부딪 치고이를 파악할 수있었습니다. 고맙습니다! 그래도 질문을 따르십시오 - 새 버튼을 눌렀을 때 다른 버튼이 검은 색으로 다시 바뀌게하려면 어떻게해야합니까? – Nate4436271

+0

(검정색? 파란색을 원했던가?) 각 단추를보기 컨트롤러의 IBOutlet 속성으로 연결하고 IBAction이 트리거되면 해당 메서드 내에서 원하는 다른 단추도 변경합니다. 어떤 버튼이 활성화되어 있는지 기억하는 속성이 필요합니다 (예 : 1-3 등). 3 개의 별도 버튼 대신 세그먼트 화 된 컨트롤을 사용할 수도 있습니다. – shim

+1

활성 상자가 파란색으로 표시되고 비활성 상자가 검정색으로 표시됩니다. 귀하의 제안은 매우 도움이되었습니다, 감사합니다! – Nate4436271

2

은 어쩌면 당신은 변환으로 할 수있는 다음과 같은 코드를 시도 : 여기에 더 많은 정보를 참조

을 butnClicked FUNC

@IBAction (보낸 사람 :있는 UIButton) {

for tg in 1...2 { 
     print(sender.tag) 
     let tmpButton = self.view.viewWithTag(tg) as? UIButton 
     if tmpButton?.tag == sender.tag { 
      tmpButton?.setTitleColor(.red, for: .normal) 
     } else { 
      tmpButton?.setTitleColor(.gray, for: .normal) 
     } 
    } 

희망이 도움이됩니다.

+0

빠른 답변을 보내 주셔서 감사합니다. 3 개의 버튼이 있으므로 각 버튼에 대해 두 가지 기능을 사용하지 않는 것이 좋습니다. 주를 파악할 수 없다면, 이것을 시도해보십시오. 좋은 해결책 같아. – Nate4436271

+0

3 버튼에 대한 배열을 잡고 클릭 기능에서 반복하여 재설정합니다. 클릭 한 상태에 대한 클릭 상태를 설정하십시오. – datayeah

관련 문제