0

カスタムセルを含むテーブルビューがあります。各セルには、ユーザーがその行をクリックしたときに反転したいビューがあります。私はこれをうまく機能させました。しかし、私が苦労しているのは、ユーザーが他の行をクリックしたときに、前のセルの元のビューに戻り、現在クリックされている行を反転したいということです。

ここにいくつかのコードがあります

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

CustomCell *selectedCell = 
        (CustomCell *)[self.AlbumViewTable cellForRowAtIndexPath:self.current_index];
//if other row is already flipped then make it back to original state.
if(otherRowIsFlipped){
    selectedCell.defaultImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"defaultIndecator.jpg"]];
    selectedCell.defaultImage = CGRectMake(0, 0, 43, 43);
    [self flipView:selectedCell.flipViewContainer From:selectedCell.activity To:selectedCell.defaultImage];
}

CustomCell * new_row = 
        (CustomCell *)[self.AlbumViewTable cellForRowAtIndexPath:indexPath];


new_row.activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
new_row.activity.frame = CGRectMake(0, 0, 43, 43);
[new_row.activity startAnimating];

 //this method is merely called UIView subroutine to flip between two view 
[self flipView:new_row.flipViewContainer From:new_row.defaultImage To:new_row.activity];

[self.AlbumViewTable deselectRowAtIndexPath:indexPath animated:YES];
}

以前に選択した行をフリップバックし、現在選択されている行をフリップすることができましたが、テーブルビューを下にスクロールしてビューをフリップすると、選択されていない行に表示されるという奇妙なことがわかりました。

CustomCell クラスでプロパティを作成しようとしましたが、反転しようとしましたが、うまくいきませんでした。このアプローチが正しいかどうかはわかりませんが、下にスクロールして他の行をロードしない限り、うまくいくようです。

アドバイスをいただければ幸いです。ありがとう

4

1 に答える 1

1

このようなビュー構造を持つカスタム TableViewCell を作成する必要があります

-CELL
--CONTENT_VIEW
---1st_side
---2nd_side

コードは

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.7f];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:containerView cache:NO];
  [firstView removeFromSuperview];
  [containerView addSubview:secondView];
[UIView commitAnimations];

backメソッドについても同じ

于 2012-05-25T14:40:11.590 に答える