2013-02-17 3 views
3

this answer을 따라 내 UIButton의 제목을 바꿉니다. 요약하면 다음과 같습니다.Touch and Hold 동안 UIButton 제목을 동적으로 변경하는 방법

  1. 사용자가 터치하면 버튼 제목이 변경되기 시작합니다.

  2. 터치가 유지되는 동안 1 초마다 변경되어야하며 사용자 은이를 볼 수 있어야합니다.

  3. 사용자가 닿는다면 (터치하는 것을 멈 추면), 버튼 제목은 마지막으로 유지 된 값으로 고정되어야합니다.

은 내가 setTitle:forState:를 사용하여 2 처리 setTitle:forState:

사용 일을 처리합니다. 타이머가 사용자의 터치에 따라 1 초마다 계속 발사되는 한 계속 발생합니다.

titleForState을 사용하여 3을 처리합니다. 그러나 여기에 나는 2로 설정된 값을 얻지 못합니다.때로는 올바른 값을 얻었을 때 여전히 한 가지 문제가 있습니다. 터치가 끝난 후에도 해당 사용자 정의 UIButton에 대해 동일한 이전 제목이 표시됩니다. 나는 titleForState를 사용하여 읽었다. (UIButton.textLabel.text조차도 잘못된 값을줍니다.)

1 - 어떻게 만지기 위해 올바른 접근 방식을 따르고 있습니까? (나는 UIButton 제목을 설정하고 읽으려는 타이머 접근법을 사용함)

2 - 그렇다면 올바른 UIButton 제목 값을 읽으려면 코드에서 무엇을 변경해야합니까?

편집 :

위의 3 가지 문제를 해결했습니다. 이 문제의 이유는 다음과 같습니다. 읽기와 쓰기를 할 때 같은 UIControlState 조합을 제공하지 않았습니다. 나는 당신이 제목을 쓰는 데 UIControlStateNormal | UIControlStateHighlighted을 제공하고 그것을 다시 읽는 데 UIControlStateNormal을 사용한다면, 그것은 currect 제목 값을 되돌려 주어야하며 그 반대도 마찬가지라고 가정하고있었습니다. 불행히도 그것은 사실이 아닙니다. 나는 두 번에이 상태 중 하나를 사용하기 만하면되도록 내 앱 로직을 변경했다.

그러나 UIButton이 여전히 강조 표시된 상태에서 제목을 표시하는 방법은 여전히 ​​위의 2 가지입니다. 터치가 진행되는 동안 제목은 완전히 보이지 않습니다.

+0

아마도 'setTitleColor : forState :'로 색상 제목을 변경하려고합니까? – Vinzzz

+0

시도했지만 성공하지 못했습니다. 어쨌든 표시되도록 빨간색 설정을 시도했지만 UI에서 변경 사항을 보지 못했습니다. –

답변

1

UIButton이 여전히 강조 표시된 상태에서 제목을 표시하는 방법. 터치가 진행되는 동안 제목은 완전히 보이지 않습니다.

코드가 제목 텍스트를 변경하지 않고 터치 이벤트 중에 제목이 사라 지도록 단추가 구성되어 있습니까? 그것은 제목을 변경하는 코드가 없어도 여전히 사라 집니까?

버튼을 다시 그려야한다고 생각합니다. 제목 텍스트를 변경 한 후 [button setNeedsDisplay]으로 전화 해보십시오.

+0

아직 시도했지만 성공하지 못했습니다. 또한 스토리 보드에서 설정하려고 시도했지만 전혀 변경되지 않았습니다 (눌렀거나 누르지 않은 상태).이것이 무엇의 열쇠인지 모르겠다. 어쩌면 나는 달성하고 싶은 기능에 대한 과잉 공격 인 UIbutton을 오버라이드해야 할 수도있다. –

관련 문제