我希望在展开单元格时隐藏展开的tableviews标签,并在折叠时隐藏按钮。我在另一个类中使用了我的单元格实现,标签的属性和标题中的按钮。问题是当我在ExpandedViewController中调用这些单元格方法时,代码会进入方法,但它不会更改属性行为。你能帮我解决这个问题吗?
谢谢
ExpandedCell.h
@property (nonatomic, retain) IBOutlet UILabel *lblTitle;
@property (strong, nonatomic) IBOutlet UIButton *setTime;
ExpandedCell.m
(void)setIfHidden:(BOOL)showIfHidden
{
if (showIfHidden)
{
[self.lblTitle setHidden:YES];
[self.setTime setHidden:NO];
}
else
{
[self.lblTitle setHidden:NO];
[self.setTime setHidden:YES];
}
}
ExpandedViewController.m
import ExpandedCell.h
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([indexPath isEqual:self.expandedIndexPath])
{
return CELL_HEIGHT_EXPANDED;
}
else
{
return CELL_HEIGHT_COLLAPSED;
}
}
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.expandedIndexPath = ([self.expandedIndexPath isEqual:indexPath]) ? nil : indexPath;
ExpandedCell *hideCell = [[ExpandedCell alloc] init];
showIfHidden = YES;
[hideCell setIfHidden:showIfHidden];
[tableView beginUpdates];
[tableView endUpdates];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
答案 0 :(得分:0)
您的媒体资源标记为IBOutlet
。您使用[[ExpandedCell alloc] init]
创建单元格的新实例。
你有几个问题:
alloc init
,IBOutlet
将不存在,因为该实例未从NIB文件中取消归档。hideCell
后,您可以在其上调用方法,然后将其销毁(因为没有任何内容保留)。ExpandedCell *hideCell = [tableView cellForRowAtIndexPath:indexPath];