2017-12-13 9 views
0

私はObjective Cを初めて利用しています。私は、最初のセルを選択せず​​に、上から下にも同様にtableviewセルを選択する必要があるという点でUITableViewを使用しています。セカンドセルは選択されず、ユーザはin-betweenセルも選択できません。これを解決する方法を教えてください?
2番目のセルを有効にしたい最初のセルをユーザーが選択し、残りのセルを無効にする3番目のセルをユーザーが選択した場合、ここにサンプルイメージを追加しました。目的のCの上から下へUITableViewCellを選択する方法は?

enter image description here

enter image description here

- (void)viewDidLoad { 
     [super viewDidLoad]; 

     self.colors = [[NSArray alloc] initWithObjects: @"Red", @"Yellow", @"Green", 
         @"Blue", @"Purpole", nil]; 
    } 


    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 

     return 1; 
    } 

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

     return [self.colors count]; 
    } 

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
     static NSString *CellIdentifier = @"cell"; 
     UITableViewCell *cell = [tableView 
           dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

     cell.textLabel.text = [self.colors objectAtIndex:indexPath.row]; 

     return cell; 
    } 
+0

あなたは何をしたいのですか?それを描画するか何かを描画する –

+0

実際のシナリオでもっとうまく説明してください... –

+0

あなたの返信に感謝しました。私の質問をあなたの要求の一部として編集しました – user19

答えて

0

ご質問は明確ではないが、あなたが複数のセル選択を行うことに問題があるホープ: UITableViewtableView.allowsMultipleSelection = true;で複数のセルを選択できるようにします。そして、ユーザはテーブル内の任意の数のセルを選択することができる。

+0

あなたの答えをありがとうあなたのリクエストの一部として私の質問を編集しました。最初のセルを選択せず​​に、上から下に複数の選択が必要でした。ユーザーは次のセルを選択できません。 – user19

+0

列タイトルをUITableViewヘッダーに移動する必要がある場合、列タイトル行のチェックマークは表示されません。そうでなければ、同じものを使いたい場合は、 'UITableView Delegate'' tableView :(didSelectRowAtIndexPath: ')を使ってインデックス0をチェックし、if(indexPath.row == 0)return; –

+0

そのヘッダは必要ありません最初のセルが選択されている場合は、2番目のセルが有効になりたい場合は – user19

0

この方法で、現在の行を選択し、次の行を選択して選択することができます。 cellForRowAtIndexPathメソッドで他の行を無効にする別の方法を処理する必要があります。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    cell.checkMark.selected = YES; 
    NSString *cellText = cell.textLabel.text; 

    if(self.colors.count < indexPath.row+1 ){ 
    NSIndexPath *nextIndexPath = [NSIndexPath indexPathForRow:indexPath.row+1 inSection:0]; 
    UITableViewCell *nextCell = [tableView cellForRowAtIndexPath:nextIndexPath]; 
    nextCell.checkMark.userInteractionEnabled = YES; 
    //OR 
    nextCell.userInteractionEnabled = YES; 
    } 
} 
関連する問題