我有自定义单元格的tableview.the表被分成许多部分和rows.i有一个单元格上的自定义按钮。现在,当我点击该按钮时,我想要获取部分编号和行编号。?获取自定义单元格按钮单击的节号和行号?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
访问区段号码:内正确int section = indexPath.section;
访问的行数( 对此
我有自定义单元格的tableview.the表被分成许多部分和rows.i有一个单元格上的自定义按钮。现在,当我点击该按钮时,我想要获取部分编号和行编号。?获取自定义单元格按钮单击的节号和行号?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
访问区段号码:内正确int section = indexPath.section;
访问的行数( 对此
您需要在您的视图控制器上实现UIControl事件处理方法,并将其设置为所有按钮的处理程序。即你-tableView:cellForRowAtIndexPath:
函数内部,你会做这样的事情:
[theCell.button addTarget: self
action: @selector(buttonPressed:withEvent:)
forControlEvents: UIControlEventTouchUpInside];
那么你的事件处理程序是这样的:
- (void) buttonPressed: (id) sender withEvent: (UIEvent *) event
{
UITouch * touch = [[event touches] anyObject];
CGPoint location = [touch locationInView: self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: location];
/* indexPath contains the index of the row containing the button */
/* do whatever it is you need to do with the row data now */
}
当你在你的tableView选择一个单元格下面的方法被调用的任何想法节):int row = indexPath.row;
当用户点击某一行上的按钮不叫;它只在他们点击行背景本身时才被调用。 – 2009-06-11 01:31:16
的的UITableView can convert a CGPoint coordinate into an indexPath:
-(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
个
的一点想法:
你可以通过按钮的上海华层次重复,直到你找到一个UITableViewCell,然后调用 - (NSIndexPath *)indexPathForCell:在UITableView的(*的UITableViewCell)单元。
- (void)buttonClicked:(id)sender {
UIView *button = sender;
for (UIView *parent = [button superview]; parent != nil; parent = [parent superview]) {
if ([parent isKindOfClass: [UITableViewCell class]]) {
UITableViewCell *cell = (UITableViewCell *) parent;
NSIndexPath *path = [self.tableView indexPathForCell: cell];
// now use the index path
break; // for
}
}
}
您可以交替使用按钮的标记来存储引用该行的索引。这只能保存一个整数,所以当你有一个单独的部分时,或者当你将行作为一个扁平列表来管理时,它是最有意义的。
您可以替代子类UITableViewCell封装按钮。您的UITableViewCell可以响应按钮事件并将事件转播给其自己的代理,从而传递自我。然后,事件委托可以调用UITableView上的 - (NSIndexPath *)indexPathForCell:(UITableViewCell *)单元来获取索引路径。
添加可以在你的UITableViewCell的subclassTo的实例变量存储单元格的索引路径:
NSIndexPath *myIndexPath;
当您在单元格:在indexpath
cellForIndexPath:
通到新创建的/再生细胞。
现在,当您按下按钮时,只需从您的手机ivar读取indexpath即可。
轻微更正... [事件触及]应该是[事件所有触发] – dizy 2009-06-09 21:46:27