gpt4 book ai didi

ios - 如何在 iOS 的 didselectrowatindexpath 中触发按钮操作方法, objective-c

转载 作者:行者123 更新时间:2023-11-28 18:29:13 26 4
gpt4 key购买 nike

我有一个带有自定义表格 View 单元格的表格 View 。在 tableview 单元格中有两个标签和一个按钮。我希望它为用户选择的行触发按钮操作以隐藏同一行中的标签。

这是我的表格 View Controller

ViweController.h

    #import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITableViewDelegate, UITableViewDataSource>

@property (weak, nonatomic) IBOutlet UITableView *tablev;

@end

ViewController.m

#import "ViewController.h"
#import "TestTableViewCell.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 2;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

TestTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"mycell"];
cell.selectionStyle = UITableViewCellFocusStyleCustom;

return cell;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger sec = indexPath.section;
NSInteger rw = indexPath.row;

TestTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"mycell"];
cell.numberlabel.hidden = YES;
NSLog(@"selected section :%li ---> selected row :%li",(long)sec, (long)rw);



//in here I want fire the button acction in the cell for each row when cell tap.(not when the button click in the cell).
}

TestTableViewCell.h

#import <UIKit/UIKit.h>

@interface TestTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *staticlabel;
@property (weak, nonatomic) IBOutlet UILabel *numberlabel;

@property (weak, nonatomic) IBOutlet UIButton *hidebutton;

@end

TestTableViewCell.m//我试图在这里实现按钮点击方法。它起作用了。但那时它没有识别出哪个单元格被录音了。

**注意:我已经尝试在这里实现按钮点击方法。我工作了。但那时它没有识别出哪个单元格被录音了。 **

最佳答案

您可以通过两种方式实现,一种是将 Button Action 添加到 cellForRowAtIndexPath 中,然后设置 Button 的标签,如下面的代码:

hidebutton.tag=indexPath.row;

[hidebutton addTarget:self
action:@selector(hideaction:)
forControlEvents:UIControlEventTouchUpInside];

它的作用方法是

-(IBAction)hideaction:(UIButton*)sender
{
NSIndexPath *hideIndexpath = [NSIndexPath indexPathForRow:sender.tag inSection:0];
TestTableViewCell *cell = (TestTableViewCell *)[self.tablev cellForRowAtIndexPath:hideIndexpath];

}

另一种方法是您可以使用以下代码从 DidSelect 方法实现相同的目的:

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
TestTableViewCell *cell = (TestTableViewCell *)[self.tablev cellForRowAtIndexPath:indexPath];
//use your cell object for hide anyting
}

关于ios - 如何在 iOS 的 didselectrowatindexpath 中触发按钮操作方法, objective-c ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38217438/

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