UITableViewCell
でindexPath
を取得するにはどうすればよいですか?このような:
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)
{
}
}
}
}
[(UITableViewCell *)[(UITableView *)self cellForRowAtIndexPath:nowIndex]
uitableviewcellを提供します。しかし、私はあなたが正確に何を求めているのか分かりません!このコードを持っているのに、まだuitableviewcellを取得する方法を尋ねているからです。いくつかの情報はあなたに答えるのに役立ちます:)
ADD:キャストなしで同じことを実現する代替構文を次に示します。
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:nowIndex];
最後に、次のコードを使用してセルを取得します。
UITableViewCell *cell = (UITableViewCell *)[(UITableView *)self.view cellForRowAtIndexPath:nowIndex];
クラスは拡張されているためUITableViewController:
@interface SearchHotelViewController : UITableViewController
したがって、self
は "SearchHotelViewController"です。
これは、インデックスパスからカスタムセルを取得するコードです
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
Swift 4の場合
let indexPath = IndexPath(row: 0, section: 0)
let cell = tableView.cellForRow(at: indexPath)
私はあなたの問題が何なのかよく分かりませんが、そのようにパラメータ名を指定する必要があります。
-(void) changeCellText:(NSIndexPath *) nowIndex{
UILabel *content = (UILabel *)[[(UITableViewCell *)[(UITableView *)self cellForRowAtIndexPath:nowIndex] contentView] viewWithTag:contentTag];
content.text = [formatter stringFromDate:checkInDate.date];
}
次のコードを使用して、最後のセルを取得できます。
UITableViewCell *cell = [tableView cellForRowAtIndexPath:lastIndexPath];
スイフト
let indexpath = IndexPath(row: 0, section: 0)
if let cell = tableView.cellForRow(at: indexPath) as? <UITableViewCell or CustomCell> {
cell.backgroundColor = UIColor.red
}
Swift
let indexpath = NSIndexPath(row: 0, section: 0)
let currentCell = tableView.cellForRow(at: indexpath as IndexPath)!