从TTTableLinkedItemCell访问自定义单元格中的属性

时间:2011-07-16 15:49:54

标签: iphone ipad three20

我在自定义单元格的实现中遇到了一个小问题。基本上在我的自定义单元子类中(TTTableLinkedItemCell的子类) 我有一个名为BOOL的选项。我希望能够在我的

中使用这个BOOL
+ (CGFloat)tableView:(UITableView *)tableView rowHeightForObject:(id)item {

但是,似乎不可能。有没有解决这个问题?

选项用于动态调整单元格的高度,无论是否设置

定义单元格的高度。

更新

我在我的函数中尝试了以下内容:

CustomCell* cell = (CustomCell *) [self.tableView cellForRowAtIndexPath:indexPath];
((RKMappableObjectTableItem *)[cell object]).options = YES;

在我的rowHeightForObject中我有:

+ (CGFloat)tableView:(UITableView *)tableView rowHeightForObject:(id)item {
    float optionsHeight = 0.0;
if (((RKMappableObjectTableItem *) item).options)
        optionsHeight = 25.0;
    }

以下是我如何设置它:

@interface RKMappableObjectTableItem : TTTableLinkedItem {
    NSObject* _object;
    BOOL _options;
}

@property (nonatomic, retain) NSObject* object;
@property (nonatomic, assign) BOOL options;

+ (id)itemWithObject:(NSObject*)object;

@end

然而BOOL总是NO,就好像它从未设置过......为什么会这样? 我做错了什么?

2 个答案:

答案 0 :(得分:1)

执行此操作的方法是为TTTableViewItem创建自定义类。单元格应该是“哑”,只显示自定义项中包含的信息。所以我会把你的options bool存储在自定义项子类中,而不是自定义单元格中。这就是为什么该方法作为类方法存在并且您在项目中传递而不是实例方法。

答案 1 :(得分:0)

尝试这样的事情:

- (CGFloat)tableView:(UITableView *)tableView rowHeightForObject:(id)item {
    BOOL boolValue = [(YourCustomCellClass *)item options];
    if (boolValue) {
        ...
    }
    else {
        ...
    }
}