セルまたはセルのindexPathを取得する方法はたくさんあります。
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
- (NSIndexPath *)indexPathForCell:(UITableViewCell *)セル
- (NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
- (NSArray *)indexPathsForRowsInRect:(CGRect)rect
- (NSArray *)visibleCells
- (NSArray *)indexPathsForVisibleRows
UIButtonのIBActionを処理する場合は、次のようにindexPathForRowAtPointを使用します。
-(IBAction)myAction:(id)sender
{
CGPoint location = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location];
UITableViewCell *swipeCell = [self.tableView cellForRowAtIndexPath:indexPath];
NSLog(@"Selected row: %d", indexPath.row);
//......
}
またはindexPathForCell
- (void)buttonPressedAction:(id)sender
{
UIButton *button = (UIButton *)sender;
// Get the UITableViewCell which is the superview of the UITableViewCellContentView which is the superview of the UIButton
(UITableViewCell*)cell = [[button superview] superview];
int row = [myTable indexPathForCell:cell].row;
}
私は次のコードを取得しました:
UITableViewで押されたUIButtonの検出
カスタムUITableViewCellボタンアクション?