【问题标题】:accessing property in custom cell from TTTableLinkedItemCell从 TTTableLinkedItemCell 访问自定义单元格中的属性
【发布时间】:2023-03-17 09:26:01
【问题描述】:

我在实现自定义单元格时遇到了一个小问题。基本上在我的自定义单元子类中(TTTableLinkedItemCell 的子类) 我有一个名为 options 的 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,就好像它从未设置过一样。这是为什么呢? 我做错了什么?

【问题讨论】:

    标签: iphone ipad three20


    【解决方案1】:

    这样做的方法是为您的TTTableViewItem 创建一个自定义类。单元格实际上应该是“哑”的,并且只显示自定义项中包含的信息。因此,我会将您的 options bool 存储在自定义项目子类中,而不是自定义单元格中。这就是为什么该方法作为类方法存在并且您被传入项目而不是实例方法的原因。

    【讨论】:

    • 我也想过这个......并考虑是否有其他更漂亮的选择
    • 漂亮的选择。很容易做到,并且将模型与视图分离,真正的 MVC 风格。
    • 问题是如何从我在 TTTableViewController 中定义的函数中设置我的 TTTableViewItem 中的选项属性?如何获取 TTTableViewItem?
    • 在 options = YES 行放置一个断点以确保它被调用。这里的代码看起来不错。
    • 我从调试器中检查了选项设置为 YES,但是为什么在我的 rowHeightForObject 期间是 NO?唯一可能的解释是它没有调用同一个对象..?
    【解决方案2】:

    试试这样的:

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

    【讨论】:

    • item 不是自定义单元类,rowHeightForObject 在单元实现中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    相关资源
    最近更新 更多