假如你是用代碼方式直接將控件(如UILabel、UIButton等)加到UITableView的cell中去的話,,,在出了
[cpp] - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //自定義代碼 return cell; } 這個函數後,,,當你點擊cell的時候想知道到底是點擊了第幾行,,這時候你就可以通過在以下代碼獲得點擊的行數。 [cpp] UITableViewCell *cell = (UITableViewCell *)[btn superview]; NSIndexPath *indexPath = [_myTableView indexPathForCell:cell]; NSLog(@"indexPath is = %i",indexPath.row); 注釋:btn是你通過代碼的方式添加到cell的一個Button,_myTableView是UITableView的一個關聯變量。 假如你是通過新建 .xib的方式新建一個繼承UITableViewCell的 .xib(例如:shopCell.xib)文件添加到原有UITableView的cell的方式的話,,,用上面這種方法是獲取不到點擊cell所在的行數的,也就是說你不知道點擊的cell到底是第幾行。 同樣可以用上面的代碼,,不過要稍微修改一下: [cpp] UITableViewCell *cell = (UITableViewCell *)[[[btn superview] superview] superview]; NSIndexPath *indexPath = [_myTableView indexPathForCell:cell]; NSLog(@"indexPath is = %i",indexPath.row); 解釋:第一句代碼中的[btn superview]是shopCell 的contentView,第二個superview是shopCell自己本身的cell,第三個superview是UITableView的cell,,注意不要弄混淆了。