Yog*_*esh 3 uitableview ibaction
我有一个自定义的UITableViewCell,我在其上添加了一个按钮,我在viewController中的IBAction上关联了该按钮.现在我遇到的问题是如何知道该按钮的创建单元格.当我提出我的viewController,其中有一个表并且有多行(自定义UITableViewCell),现在当用户按下按钮时,操作被调用,但我怎么知道它是哪一行.
因为基于行索引我需要存储一些值.
编辑:我现在有一些线索,但我仍然不知道我将如何做,所以看起来像我的tableViewController cellForRowAtIndexPath方法我必须做这样的事情
[cell.button1 addTarget:self action:@selector(addToCart:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
然后我必须写一个方法
-(IBAction) addToCart:(id) sender
Run Code Online (Sandbox Code Playgroud)
但我还不知道如何在addToCart方法中获取行索引.感谢您的帮助.
Yog*_*esh 20
好的,最后我得到了答案,看着不同的论坛,人们建议做这样的事情
在cellForRowAtIndexPath中的自定义表视图控制器中执行此操作
cell.addToCart.tag = indexPath.row;
[cell.addToCart addTarget:self action:@selector(addToCart:)
forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
其中addToCart是我的customUITableViewCell中UIButton的名称.它似乎对我不起作用.所以这就是我所做的
-(IBAction) addToCart:(id) sender{
NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell *)
[[sender superview] superview]];
NSLog(@"The row id is %d", indexPath.row);
}
Run Code Online (Sandbox Code Playgroud)
然后通过interfacebuilder我将我的按钮的动作关联到我的表视图控制器上的addToCart IBAction.
更不那么黑客.
[cell.button1 addTarget:self action:@selector(addToCart:event:) forControlEvents:UIControlEventTouchUpInside];
- (void)addToCart:(id)sender event:(id)event
{
NSSet *touches = [event allTouches];
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint: currentTouchPosition];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13992 次 |
| 最近记录: |