在heightForRowAtIndexPath之后获取单元格中的更新行高

时间:2015-07-31 09:54:17

标签: ios objective-c cocoa-touch tableview

我正在尝试在单元格的setProperty中访问TableViewCell的高度。

我正在通过xib创建单元格,然后根据heightForRowAtIndexPath

中返回的值更改高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {    
    return 200;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
        RightGuideCell* cell = [tableView dequeueReusableCellWithIdentifier:@"cellId"];
        cell.ticks = @[@"1",@"1",@"1",@"1",@"1",@"1",@"1"];
        return cell;
}

这是我单元格中的属性。

- (void)setTicks:(NSArray *)ticks {
    _ticks = ticks;
    CGFloat height = self.frame.size.height; //Value is 44 (size in xib)
}

如何在单元格中获得200(在heightForRowAtIndexPath中设置)?

2 个答案:

答案 0 :(得分:0)

它以不同的方式工作。 tableview使用heightForRowAtIndexPath来了解为单元格保留多少空间,以便它可以按照所需的方式布置单元格。 从xib创建单元格时,它具有绘制它的大小,与表格视图为单元格保留的大小无关。

因此,您必须在创建单元格时更改(更改框架)(dequeque ...)或在setTicks方法中调整大小(如果您希望它与表格视图中的给定空间匹配),导致2信息无关。

答案 1 :(得分:0)

如果您不想像这样使用动态大小的单元格

https://www.youtube.com/watch?v=LFBTbmvFR30

最好的方法是尝试为集合视图使用自定义布局,例如

https://github.com/bryceredd/RFQuiltLayout

您可以使用自定义布局做出惊人的事情,您应该尝试。