2012-12-13 2 views
-1

현재 UITableView으로 작업 중이며 각 셀에는 배경에 특정 UIImage 버튼이 있습니다. 단추를 셀에서 클릭하면이 이미지를 변경하고 싶습니다.UITableView의 UIButton, 선택기가 여러 버튼에 적용됨

이 코드는 완벽하게 작동하지만 버튼을 클릭하면 몇 개의 버튼이 수정됩니다. 5 개의 버튼마다 이유를 모르겠습니다. 여기 코드는 다음과 같습니다

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [myCell.favorite addTarget:self action:@selector(pressed_fav:) forControlEvents:UIControlEventTouchUpInside]; 

    return myCell; 
} 

- (void)pressed_fav:(id)sender 
{ 
    UIButton *myButton = sender; 

    [myButton setBackgroundImage:[UIImage imageNamed:@"star.png"] forState:UIControlStateNormal]; 
} 

myCellUIButton을 가리키는 IBOutlet '좋아'를 포함, 사용자 정의 셀의 인스턴스입니다.

+1

당신은 tableView에 대한 전체 코드를 게시합니다 : ellForRowAtIndexPath? – Kal

답변

1

왜냐하면 UITableView은 셀을 다시 사용하기 때문입니다. 단추의 이미지를 식별하려면 cellForRowAtIndexPath 메서드에 일부 논리가 있어야합니다.

0

정말 고마워요!

사실, 난 줄 삭제할 때 : 그것은 셀을 표시하지 않습니다

myCell = [tableView dequeueReusableCellWithIdentifier:@"cinemaCell"]; 

를 (그것이 잘 할당 대신 초기화 것).

+0

괜찮습니다. 매번 새로운 셀을 초기화하는 것을 잊었습니다. 죄송합니다. –

관련 문제