gpt4 book ai didi

objective-c - 如何在 iOS 中通过参数将 UITableView IndexPath 传递给 UIButton @selector?

转载 作者:可可西里 更新时间:2023-11-01 03:01:31 25 4
gpt4 key购买 nike

我在 UITableViewCells 中添加了 UIButton。当用户单击按钮时,我得到了索引路径以使用 NSMutableArray 中的值。我使用下面的方法获取当前的 IndexPath,

[getMeButton addTarget:self action:@selector(resendTheErrorMessage:) forControlEvents:UIControlEventTouchUpInside];

-(void) resendTheErrorMessage:(id)sender
{
NSLog(@"SEnder: %@", sender);
//NSLog(@"Index Path : %@", indexpath);
}

任何人都可以帮我传递当前索引路径 UIButton 的 @selector。提前致谢。

编辑:

这是我从 NSLog()

得到的输出
<UIButton: 0x864d420; frame = (225 31; 95 16); opaque = NO; tag = 105; layer = <CALayer: 0x864d570>>

最佳答案

像这样添加你的UIButton

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setFrame:CGRectMake(10.0, 2.0, 140.0, 40.0)];
[btn setTitle:@"ButtonTitle" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[btn setTag:indexPath.row];
[cell.contentView addSubview:btn];

然后得到它的标签号——

-(void)buttonClicked:(id)sender
{
NSLog(@"tag number is = %d",[sender tag]);
//In this case the tag number of button will be same as your cellIndex.
// You can make your cell from this.

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[sender tag] inSection:0];
UITableViewCell *cell = [tblView cellForRowAtIndexPath:indexPath];
}

注意: 当您的 tableView 只有 1 个部分时,上述解决方案将有效。如果您的 tableView 有多个部分,您应该知道您的部分索引或使用以下方法。

备选方案:1

UIView *contentView = (UIView *)[sender superview];
UITableViewCell *cell = (UITableViewCell *)[contentView superview];
NSIndexPath *indexPath = [tblView indexPathForCell:cell];

备选方案:2

CGPoint touchPoint = [sender convertPoint:CGPointZero toView:tblView];
NSIndexPath *indexPath = [tblView indexPathForRowAtPoint:touchPoint];
UITableViewCell *cell = [tblView cellForRowAtIndexPath:indexPath];

关于objective-c - 如何在 iOS 中通过参数将 UITableView IndexPath 传递给 UIButton @selector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com