2011-10-15 8 views
2

UIButton에 reversesTitleShadowWhenHighlighted 속성을 사용하여 제목의 텍스트 그림자를 뒤집어 놓았습니다. (대단히 효과적이지만) 버튼의 선택된 상태 (UIControlStateSelected)에 대해 동일한 것을 원합니다. 관련 질문에UIButton 역전을위한 아날로그 TitleShadowWhen 선택된 선택된 상태에 대한 강조 표시

어떤 답변도 환영 :

  • 수정없이 UIButton이 할 수있는 방법이 있나요?
  • UIButton으로 상태 당 제목 라벨의 shadowOffset을 설정하는 방법이 있습니까 (shadowColor에서 가능한 것과 유사)?
  • UIButton을 확장하여 추가하는 경우 어떻게 처리합니까?

답변

2

동일한 문제가 발생하므로 처음 두 질문에는 맞지 않습니다. 여기 서브 클래 싱 방식은 다음과 같습니다.

@interface MyButton : UIButton 

@property (nonatomic) BOOL reversesTitleShadowWhenSelected; 

@end 

@implementation MyButton 

@synthesize reversesTitleShadowWhenSelected; 

- (void)setSelected:(BOOL)selected 
{ 
    if (self.reversesTitleShadowWhenSelected) 
    { 
     if ((selected && !self.isSelected) || 
      (!selected && self.isSelected)) 
     { 
      CGSize offset = self.titleLabel.shadowOffset; 

      offset.width *= -1; 
      offset.height *= -1; 

      self.titleLabel.shadowOffset = offset; 
     } 
    } 

    [super setSelected:selected]; 
} 

@end 
관련 문제