2012-12-16 4 views
0

UIScrollView에 보관 된 많은 UIButton과 많은 UIButton을 보유하고 있으며 모두 동적으로 태그가 지정됩니다.UIButton 인스턴스가 강조 표시되도록 설정

버튼과 같은 버튼의 속성을 생성 메소드 외부에서 참조를 생성하여 검색 할 수 있습니다. 그러나 버튼에 속성을 설정할 수 없습니다. 즉, 더 자세하게 설정할 수없는 것처럼 보입니다.

//UIButton is created elsewhere, i.e. UIButton *createdButton... createdButton.tag = 101 
//Trigger method with createdButton as SENDER 

- (void)highlightButton:(id)sender { 

UIButton *buttonInstance = (UIButton *)sender; 
int tag = buttonInstance.tag //use this to perform button-specific code 

[buttonInstance setHighlighted:YES]; // <-- Not setting 

} 

어떤 아이디어 : 여기

은 예입니다?

+0

'[button setHighlighted : YES];의'button '은 어디에서 왔습니까? 'buttonInstance'를 원하셨습니까? – dasblinkenlight

+0

어디에서 buttonInstance를 사용합니까? –

+0

네, 죄송합니다! 그냥 Q를 업데이 트 – Sarreph

답변

1

highlighted은 일반적으로 일시적인 상태이며 사용자가 버튼을 터치하고 있음을 나타내는 데 사용됩니다. 따라서 터치 핸들링 이벤트의 일반적인 과정에서 UIKit에 의해 종종 NO으로 다시 설정됩니다. 이것은 버튼 자체의 액션에 의해 메소드가 호출되기 때문에 특히 가능성이 높습니다.

단추의 모양을 지속적으로 변경하려면 highlighted이 아닌 selected으로 설정해야합니다. 이 제어 상태 (UIControlStateSelected)에 대해 제목, 이미지 등을 UIControlStateHighlighted으로 설정하는 것과 같은 방법으로 설정할 수 있습니다.

+0

완벽, 설명 주셔서 감사합니다; 지금 작동 :) – Sarreph

관련 문제