2012-05-22 4 views
2

강조 표시된 이미지가 다르게 표시됩니다. 여기 내 상황이 있습니다.ios - UIButton 강조 표시 설정 이상한

[button setImage:"normal image" forState:UIControlStateNormal]; 
[button setImage:"hover image" forState:UIControlStateHighlighted]; 
[button setImage:"hover image" forState:UIControlStateSelected]; 

- (IBAction)buttonTouched:(id)sender { 
    UIButton *selectButton = sender; 


    if (_currentSelectedTabButton.tag == selectButton.tag) { 
     //TODO refresh view controller 
     return ; 
    } 

    _currentSelectedTabButton.selected = NO; 
    selectButton.selected = YES; 

    _currentSelectedTabButton = selectButton; 
} 
  1. 터치 버튼을 누릅니다.
  2. 버튼은 강조 표시된 이미지를 표시합니다. (올바른 이미지)
  3. 버튼 상태가 "선택됨"
  4. 터치 버튼으로 설정되었습니다.
  5. 단추가 다른 강조 표시된 이미지를 표시합니다.

단추가 선택 상태에 있으면 강조 표시된 이미지가 잘못 표시됩니다. 아이디어가 있으십니까?

+0

첫 번째 클릭 이후 상태가 바뀌면 항상 (selectButton.selected = YES;) 버튼을 선택하면 그 의도는 무엇입니까? –

+0

그건 내 출처의 일부입니다. 나는 방법의 전체 소스를 추가 할 것이다. 항상 선택됩니다. 다른 버튼을 선택하면 이전에 선택한 버튼의 선택된 속성이 NO로 변경되고 현재 선택된 버튼의 선택된 속성이 YES로 변경됩니다. – Paul

+0

이것은 setImage : forControllState : UIControlStatesSelected를 설정할 때 발생합니다. –

답변

2

setImage : forControllState : UIControlStatesSelected 및 setHighlighted 이미지를 모두 설정하고 있기 때문에 버튼을 처음으로 선택 해제하면 강조 표시된 이미지가 표시되고 버튼을 다시 누르면 지금부터 선택한 이미지가 표시됩니다 버튼이 선택된 상태입니다. (짧은 강조 표시된 이미지는 버튼의 선택되지 않은 상태에서만 작동합니다).

+0

감사합니다. 나는 (UIControlStateSelected | UIControlStateHighlighed) 상태를 설정해야한다. – Paul

0

UIControlStateSelected | UIControlStateHighlighted는 상태가 UIControlStateHighLighed와 독립적입니다.

관련 문제