gpt4 book ai didi

ios - 在自定义 UITableViewCell 中隐藏 UIButton

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

在我的表格 View 中,我有几个不同的自定义单元格。其中一个有一个按钮。这个按钮调出另一个 View Controller 。但是,在 tableview 完全加载之前不需要它。在 cellForRowAtIndexPath 中,我设置了所有不同的自定义单元格。我可以取消注释 [buttonCell.myButton setHidden:YES];它会隐藏我的按钮。见下文。

else if (indexPath.section == 3)
{
ButtonCell *buttonCell = [tableView dequeueReusableCellWithIdentifier:@"ButtonCell"];

//[buttonCell.myButton setHidden:YES];
cell = buttonCell;
}
return cell;

但是,我想在加载 tableview 后取消隐藏按钮。我在调用 reloadData 的另一个方法中完成了所有数组的加载。在那种方法中,我试图通过这样做来取消隐藏按钮..

[ButtonCell.myButton setHidden:NO];

但是编译器警告我在 ButtonCell 中找不到属性 myButton。有没有人知道如何取消隐藏我的按钮。我做错了什么,我没有得到什么!感谢你的帮助。

编辑 1

我的纽扣电池类是...。H #导入

@interface ButtonCell : UITableViewCell

@property (strong, nonatomic) IBOutlet UIButton *myButton;
- (IBAction)YDI:(id)sender;


@end

.m

#import "ButtonCell.h"
#import "AnotherWebViewController.h"

@implementation ButtonCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];

// Configure the view for the selected state
}

- (IBAction)YDI:(id)sender
{

}

@end

编辑 2

在每个人的帮助下回答(谢谢大家)我已经取得了一些进展,但按钮没有显示出来。所以我仍然将按钮隐藏在 cellForRowAtIndexPath 中,它应该可以正常工作。然后在我重新加载数据的方法中放入以下代码。

NSIndexPath *index = [NSIndexPath indexPathForRow:0 inSection:3];
ButtonCell *buttonCell = (ButtonCell *) [self.tableView cellForRowAtIndexPath:index];
[buttonCell.myButton setHidden:NO];

带有按钮的 ButtonCell 始终是第四部分(将第一部分计为 0)并且它只有一行。任何其他帮助将不胜感激。快到了!

编辑 3知道了!但是,正是由于评论,我才能够弄清楚。感谢@A-Live。虽然我确实知道如何在 cellForRowAtIndexPath 之外的方法中获取单元格,但感谢 ElJay。所以我给了他支票,因为我学到了一些新东西,这就是我们无论如何都会发布问题的原因。所以在我的方法 cellForRowAtIndexPath 中是我隐藏/显示按钮的地方。我的应用程序中有一个名为 finished 的 BOOL,它最初设置为 true。当 TableView 结束加载时,它被设置为 false。所以我只是用这个 bool 值来显示/隐藏按钮。

else if (indexPath.section == 3)
{
ButtonCell *buttonCell = [tableView dequeueReusableCellWithIdentifier:@"ButtonCell"];

if (!_finished)
{
[buttonCell.myButton setHidden:YES];
}else{
[buttonCell.myButton setHidden:NO];
}

cell = buttonCell;
}
return cell;

这只是我的 cellForRowAtIndexPath 方法的一部分。再次感谢所有帮助。看到这么多答案我很惊讶!谢谢。

最佳答案

使属性(property)可公开访问。

@property (nonatomic, retain) UIButton *myButton;

然后在 cellForRowAtIndexpath 中

ButtonCell *buttonCell =(ButtonCell *) [tableView dequeueReusableCellWithIdentifier:@"ButtonCell"];

关于ios - 在自定义 UITableViewCell 中隐藏 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17069138/

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