web-dev-qa-db-ja.com

indexPathでuitableViewCellを取得するにはどうすればよいですか?

UITableViewCellindexPathを取得するにはどうすればよいですか?このような:

UIActionSheetを使用します。確認をクリックするとUIButtonセルテキストを変更します。

プロパティとして定義するnowIndex

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 0)
    {
        NSInteger section =  [nowIndex section];
        NSInteger row = [nowIndex row];
        NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
        formatter.dateFormat = @"yyyy-MM-dd";

        if (section == 0)
        {
            if (row == 0)
            {

            }
            else if (row == 1)
            {
                UILabel *content = (UILabel *)[[(UITableView *)[actionSheet ] cellForRowAtIndexPath:nowIndex] viewWithTag:contentTag];
                content.text = [formatter stringFromDate:checkInDate.date];
            }
            else if (row == 2)
            {

            }
        }
    }
}
68
phpxiaoxin
[(UITableViewCell *)[(UITableView *)self cellForRowAtIndexPath:nowIndex]

uitableviewcellを提供します。しかし、私はあなたが正確に何を求めているのか分かりません!このコードを持っているのに、まだuitableviewcellを取得する方法を尋ねているからです。いくつかの情報はあなたに答えるのに役立ちます:)

ADD:キャストなしで同じことを実現する代替構文を次に示します。

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:nowIndex];
116
Manjunath

最後に、次のコードを使用してセルを取得します。

UITableViewCell *cell = (UITableViewCell *)[(UITableView *)self.view cellForRowAtIndexPath:nowIndex];

クラスは拡張されているためUITableViewController:

@interface SearchHotelViewController : UITableViewController

したがって、selfは "SearchHotelViewController"です。

27
phpxiaoxin

これは、インデックスパスからカスタムセルを取得するコードです

 NSIndexPath *indexPath = [NSIndexPath indexPathForRow:2 inSection:0];
 YourCell *cell = (YourCell *)[tblRegister cellForRowAtIndexPath:indexPath];

Swiftの場合

let indexpath = NSIndexPath(forRow: 2, inSection: 0)
let currentCell = tblTest.cellForRowAtIndexPath(indexpath) as! CellTest

For Swift 4(collectionview)

let indexpath = NSIndexPath(row: 2, section: 0)
let cell = self.colVw!.cellForItem(at: indexpath as IndexPath) as? ColViewCell
21
Hardik Thakkar

Swift 4の場合

    let indexPath = IndexPath(row: 0, section: 0)
    let cell = tableView.cellForRow(at: indexPath)
10
Celil Bozkurt

私はあなたの問題が何なのかよく分かりませんが、そのようにパラメータ名を指定する必要があります。

-(void) changeCellText:(NSIndexPath *) nowIndex{
    UILabel *content = (UILabel *)[[(UITableViewCell *)[(UITableView *)self cellForRowAtIndexPath:nowIndex] contentView] viewWithTag:contentTag];
    content.text = [formatter stringFromDate:checkInDate.date];
}
6
David Kanarek

次のコードを使用して、最後のセルを取得できます。

UITableViewCell *cell = [tableView cellForRowAtIndexPath:lastIndexPath];
6
Hardik Mamtora

スイフト

let indexpath = IndexPath(row: 0, section: 0)
if let cell = tableView.cellForRow(at: indexPath) as? <UITableViewCell or CustomCell> {
    cell.backgroundColor = UIColor.red
}
4
Krunal

Swift

let indexpath = NSIndexPath(row: 0, section: 0)
let currentCell = tableView.cellForRow(at: indexpath as IndexPath)!
4
Oscar