2011-12-07 2 views
0

IB에서 사용자 지정 UITableViewCell을 만들었습니다. IB에 추가 한 CheckMarkButton이라는 사용자 지정 UIButton이 있으며 "unchecked.png"(체크 표시가없는 빈 상자)의 배경 이미지가 있습니다.사용자 지정 UIButton의 상태 변경

내가있는 TableView에서이 셀을 사용하는 경우 cellForRowAtIndexPath에, 나는 버튼의 대상을 추가 선택기에 대한 다음

cell.CheckMarkButton addTarget:self [email protected](CheckmarkButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

: 예상대로

- (void)CheckmarkButtonPressed:(id)sender { 
    UIButton *theButton = (UIButton *)sender; 
    theButton.selected = !theButton.selected; 
    [theButton setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected]; 
} 

그래서이 부분은 작동 . 이제 섹션 헤더에서 호출 된 다른 메서드를 사용하여 해당 섹션의 TableView 행을 모두 선택 또는 선택 취소합니다. 내가 셀에 접근 한 후, 내가이 문으로

cell.CheckMarkButton.selected = YES; 

을 확인 있어요 것을 보여주기 위해 선택된 버튼을 설정하려고, 내 셀의 체크 표시 아이콘의 변화를 볼 수 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 감사.

답변

0

배경을 변경하지 않고 활성화 된 속성 만 설정하면됩니다.

하지만 일반적으로이 문제는 잘못된 것입니다. 버튼이 선택 될 때마다 수동으로 이미지를 변경하는 대신 Interface Builder에서 각 상태에 대해 다른 이미지를 구성해야합니다. 이렇게하면 버튼을 선택 상태로 표시 할 때마다 이미지가 자동으로 업데이트됩니다.

관련 문제