1

リストに入力するテキストアイテムのリストがあります。そのためのコードは次のようになります。

// CREATING EACH CELL IN THE LIST
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"business";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if(!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
        cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17];
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
    }



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


    // CLOSE THE SPINNER
    [spinner stopAnimating];

    // return the cell for the table view
    return cell;
}




-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17];
    CGSize constraintSize = CGSizeMake(self.itemList.frame.size.width, MAXFLOAT);

    CGSize labelSize = [[cellTitleArray objectAtIndex:indexPath.row] sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

    return labelSize.height + 30;
}


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

}

私がやりたいのは、その人に各アイテムを編集する選択肢を与えることです。これを行うのが理にかなっている方法の1つは、2列のリストを作成し、右側の列に「>」のような文字を作成して、タップできるようにすることです。これにより、アイテムを編集するオプションが提供されます。

この場合、どのようにそれを行うことができますか?

ありがとう!

4

2 に答える 2

2

行をキャプチャするには、次をクリックします。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Use indexPath.row to find your selection
    ...
}

ボタンなどのクリックをキャプチャするために視聴する場合:

[self.buttono addTarget:self action:@selector(doAction) forControlEvents:UIControlEventTouchUpInside];

を使用する場合はaccessoryType、このコードをcellForRowAtIndexPathメソッドに配置します。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // Pick an indicator to suit your need/look
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}

次に、クリックで何かを実行します。

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
    // Perform action for this click on row indexPath.row
}

indexPath.rowクリックを区別するのに十分でない場合(なぜそうならないのかわかりません!)、いつでもsetTag開示ボタンを使用できます。

于 2012-12-14T22:39:55.670 に答える
1
  [self.tableView indexPathForSelectedRow];

また

  [self.tableView indexPathForCell:sender]; //if you have a sender
于 2012-12-14T23:39:26.413 に答える