В моем представлении таблицы у меня есть несколько различных пользовательских ячеек. В одном из них есть кнопка. Эта кнопка вызывает другой контроллер вида. Тем не менее, он не нужен, пока таблица полностью не загрузится. В cellForRowAtIndexPath я настраивал все свои собственные пользовательские ячейки. Я могу раскомментировать [buttonCell.myButton setHidden: YES]; и он скроет мою кнопку. Смотри ниже.Скрыть UIButton в пользовательском UITableViewCell
else if (indexPath.section == 3)
{
ButtonCell *buttonCell = [tableView dequeueReusableCellWithIdentifier:@"ButtonCell"];
//[buttonCell.myButton setHidden:YES];
cell = buttonCell;
}
return cell;
Однако, я хочу, чтобы затем показать кнопку после загрузки таблицы. Я заканчиваю загрузку всех своих массивов в другом методе, где я вызываю reloadData. В этом методе я попытался отобразить кнопку, делая это ..
[ButtonCell.myButton setHidden:NO];
Но компилятор дает мне предупреждение, что свойство MyButton не найден в миниатюрный элемент питания. Есть ли у кого-нибудь идеи, как двигаться по кнопке. Что я делаю неправильно, а чего я не получу! Спасибо за вашу помощь.
EDIT 1
Мой класс кнопка клетка ... .h #import
@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
EDIT 2
С помощью каждого, что ответил (спасибо), я получил немного дальше, но кнопка не отображается сама. Поэтому я все еще скрываю кнопку в cellForRowAtIndexPath, которая работает так, как должна. Затем в моем методе, что я перезагружаю данные, я добавляю следующий код.
NSIndexPath *index = [NSIndexPath indexPathForRow:0 inSection:3];
ButtonCell *buttonCell = (ButtonCell *) [self.tableView cellForRowAtIndexPath:index];
[buttonCell.myButton setHidden:NO];
с миниатюрный элемент питания кнопки всегда четвертая секция (считая первым как 0), и она имеет только одну строку. Любая другая помощь будет оценена по достоинству. Почти готово!
EDIT 3 Получил это! Однако это было связано с комментарием, что я смог понять это. Благодаря @ A-Live. Хотя я знаю, как получить ячейку в методе вне cellForRowAtIndexPath благодаря ElJay. Поэтому я даю ему чек, так как я узнал что-то новое, поэтому мы все равно отправляем вопросы. Поэтому внутри моего метода cellForRowAtIndexPath - это место, где я скрываю/показываю кнопку. У меня есть BOOL в моем приложении, которое называется final, изначально оно установлено в true. Когда представление таблицы заканчивается, оно установлено в значение 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. Еще раз спасибо за помощь. Я был удивлен, увидев так много ответов! Благодарю.
Есть ли тип? Я не считаю, что код должен компилироваться. –
показать нам класс ButtonCell .h –
@ LithuT.V, я включил класс ButtonCell. – Douglas