我正在尝试在单元格的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
中设置)?
答案 0 :(得分:0)
它以不同的方式工作。 tableview使用heightForRowAtIndexPath来了解为单元格保留多少空间,以便它可以按照所需的方式布置单元格。 从xib创建单元格时,它具有绘制它的大小,与表格视图为单元格保留的大小无关。
因此,您必须在创建单元格时更改(更改框架)(dequeque ...)或在setTicks方法中调整大小(如果您希望它与表格视图中的给定空间匹配),导致2信息无关。
答案 1 :(得分:0)
如果您不想像这样使用动态大小的单元格
https://www.youtube.com/watch?v=LFBTbmvFR30
最好的方法是尝试为集合视图使用自定义布局,例如
https://github.com/bryceredd/RFQuiltLayout
您可以使用自定义布局做出惊人的事情,您应该尝试。