0

私はセル画像を持つtableViewを持っています。任意のセルが選択されたときに選択画像を追加したいのですが、問題は最初に行1を選択してから行1を選択し、次に行2を選択してから行1と一緒に行2を選択することです。選択された両方ではありません。

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


 cell = [self.tableView cellForRowAtIndexPath:indexPath];

     if (indexPath.row==0) {


     cell.imageView.image=[UIImage imageNamed:@"Activity2.png"]; 
     }

     else if(indexPath.row==1){
    cell.imageView.image=[UIImage imageNamed:@"Catalog2.png"]; 


     }
   else{
    cell.imageView.image=[UIImage imageNamed:@"Library2.png"]; 

     }

    NSUInteger row = indexPath.row;
    [self.appDelegate.splitViewController viewWillDisappear:YES];

  NSMutableArray *viewControllerArray=[[NSMutableArray alloc] initWithArray: [[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] viewControllers]];
  [viewControllerArray removeLastObject];
      if (row == 0) {
  self.firstDetailViewController=[[[FirstDetailViewController alloc] init]autorelease];
  [viewControllerArray addObject:self.firstDetailViewController];
  self.appDelegate.splitViewController.delegate = self.firstDetailViewController;
  }

     if (row == 1) {
self.secondDetailViewController=[[[SecondDetailViewController alloc]init]autorelease];
[viewControllerArray addObject:self.secondDetailViewController];
self.appDelegate.splitViewController.delegate = self.secondDetailViewController;

    }

   if (row == 2) {

    self.myLearningViewController=[[[MyLearningViewController alloc]init]autorelease];
[viewControllerArray addObject:self.myLearningViewController];
self.appDelegate.splitViewController.delegate = self.myLearningViewController;
    }
     }
4

2 に答える 2

0

iOS 5.0 以降向けに書いている場合、この設定がうまくいっていれば、 allowsMultipleSelectionに訴えることができます。これを に設定しNOます。それ以外の場合は、–deselectRowAtIndexPath:animated: say を使用して、最初の選択をクリアします。の実装でこれらのいずれかを呼び出します-tableView:didSelectRowAtIndexPath:

于 2013-07-04T04:04:32.390 に答える
0

cellForRowAtIndexPathこのようにセルの背景ビューを設定できると思います

cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.backgroundColor = [UIColor clearColor];
UIImageView *bgView= [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
bgView.backgroundColor = [UIColor clearColor];
bgView.image = [UIImage imageNamed:@"cellBgImage.png"];
cell.backgroundView = bgView;

そして、 ではdidSelectRowAtIndexPath、これを使用します

[tableView deselectRowAtIndexPath:indexPath animated:YES];

これが役立つかどうかを確認してください。

于 2013-07-04T12:04:15.663 に答える