问题标签 [heightforrowatindexpath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1237 浏览

uitableview - 从 -tableView:cellForRowAtIndexPath: 计算“indexPath”处的自定义 UITableViewCell 高度:?

我在UITableViewCell自定义类里面调整了一个自定义的高度,我相信我需要使用-tableView:cellForRowAtIndexPath:方法来调整单元格的高度。我试图在自定义单元格类中调整自定义单元格的高度,然后在给定的索引路径中抓取单元格,然后返回该单元格的高度,如下所示:

但我得到堆栈溢出。有什么更好的方法来解决这个问题?

0 投票
3 回答
604 浏览

ios - IndexPathForCell 和 IndexPathForRowAtPoint 崩溃

我有UITableViewController静态分组单元格。在特定视图中,我想删除一些单元格。如果我只是隐藏它们,它会留下一个空白空间,所以我想将单元格设置rowHeight0。我在执行此操作时遇到了麻烦,因为我似乎无法获得要隐藏的单元格的 indexPath。我通过 IB 连接引用了它。在阅读之后,似乎最好的方法是通过heightForRowAtIndexPath方法。这是我的代码:

在此之前,我正在尝试IndexPathForCell,但也会崩溃。从我阅读的内容来看heightForRowAtIndexPath,即使细胞不可见,也应该可以工作。当它崩溃时,调试器中也没有任何显示。

0 投票
2 回答
882 浏览

ios - 取消隐藏后表格单元格并不总是显示隐藏的内容

我有一个带有自定义单元格的表格,在单元格中有两个 UIView,顶部始终显示,底部隐藏。

cellCellForRowAtIndexPath被调用时,所有单元格的高度都会降低,只显示顶部的 UIView。

当用户单击单元格时,该单元格会展开,然后我取消隐藏第二个 UIView。问题是有时第二个 UIView 在第一次单击单元格时不会出现。

再次单击单元格使其全部消失,然后再次单击,它总是完美显示。向下滚动然后选择另一个,第一次单击它可能不会出现或将在错误的位置,再舔两次,它就完美了。

我认为这是一个 ReusableCell 问题,但我不知道如何解决它。

所以单击一个单元格会调用如下所示的didSelectRow

如您所见,我已经尝试了 reloadData 和 BeginUpdates ,但这仍然不起作用。这是因为我隐藏/取消隐藏应该在选择时将 Alpha 设置为 0 然后 1 吗?这是可重复使用的细胞吗?

哦,为了完整性。您可能会注意到我有一个所有高度都不同的表格,这就是我更改第二个 UIView 的 Y 的原因。

0 投票
2 回答
966 浏览

uitableview - ios 7 uitableviewcell 绘图更改

我在 iOS 7 上遇到了自定义单元格绘图的问题(在 iOS 6 和 5 上工作正常)。

在 heightForRowAtIndexPath 上,我返回的高度小于每个部分最后一行的单元格实际高度,因为我需要最后一个单元格与下一部分的标题重叠。

似乎 Apple 在 iOS 7 上进行了绘图改进或其他操作,因为只有从 heightForRowAtIndexPath 返回的高度正在绘制,所以我的单元格将在底部被切割。

任何想法将不胜感激。

0 投票
2 回答
525 浏览

objective-c - 如何根据内容以编程方式设置单元格的高度

我有 UITableView,其中有文本或文本 + 图像。

我想做的单元格的高度取决于文本和图像。

我有固定大小的图像(比如说 300 宽 x200 高)。

知道如何根据内容设置单元格的高度。

假设我有文字,高度应该是 200 像素,如果我有文字/图像,我的高度应该是 400 像素。

知道如何在这种情况下设置高度。

0 投票
2 回答
233 浏览

ios - 基于单元格内对象的自定义单元格高度

我制作了一个自定义单元格,在其中放置了一个UITextView,我想根据UITextView文本长度的长度更改单元格的高度。我知道如何使用 静态更改单元格高度heightForRowAtIndexPath,但我无法根据内容动态地进行更改。

我已经阅读了这个论坛和其他几个主题的十几个主题,但我没有找到我正在寻找的答案。

有任何想法吗?

0 投票
2 回答
991 浏览

ios - 基于图像大小的单元格行高

我正在使用 API,需要UITableViewCell根据图像高度调整高度。

我的if陈述必须是:

  • 如果没有图像则将高度设置为 140,否则...
  • 如果有图像,则将高度设置为 106 + imageHeight

我似乎无法让这个工作,有什么想法吗?

将根据需要发布任何额外的代码,谢谢!

我收到一条错误return 106 + imageHeight;消息,上面写着“指向接口 'NSString' 的指针的算术运算,这对于该架构和平台来说不是恒定大小”,并且应用程序在到达该位置时崩溃。

编辑:数组内容(来自 API 的 JSON)

图片.h

图片.m

0 投票
2 回答
17242 浏览

ios - estimatedHeightForRowAtIndexPath 实际上可以更改行的最终“正确”高度吗?

在使用estimatedHeightForRowAtIndexPath 时,我刚刚发现了一个令人震惊的问题或违反直觉的行为

(1) 我的桌子的行高变化很大。最终结果的范围可以从 111 到大约 400。

(2) 我绝对完美地计算了每一行的高度。我手头有这些数组,也就是说缓存。

{请注意,这正是 Apple 工程师现在推荐的……例如,第 5 点 ..在 UITableView 中使用自动布局进行动态单元格布局和可变行高}

(3) 当 heightForRowAtIndexPath 要求一个高度时,我确实给它绝对正确的高度。

(4) 实际上,当我构建单元时,我会将其构建到完全正确的高度(如 (2) 和 (3) 中所示)。

{注意——当然是 iOS 最终决定了单元格的高度,而不是“我”。}

这一切都很完美。

即,每个单元格都是由 iOS 在 heightForRowAtIndexPath 中给定的高度构建的。

现在,我添加代码...

事实上,桌子不再工作............行高变得随机!

有人见过这种不可思议的行为吗?

我做了各种测试,试图确定这到底是什么的估计HeightForRowAtIndexPath 的关系。起初,我认为它可能会提供高度的下限。因此,150 .. 甚至我较小的单元格也会错误地为 150 高度。但事实并非如此。

我认为它可能会做这样的事情:假设您的估计HeightForRowAtIndexPath 值为 150。有时它使用 150 来表示行(实际上()证明是该大小或更小,但有时它适用于 heightForRowAtIndexPath 的实际大小。

另一方面,如果你输入一个比实际存在的值更小的estimatedHeightForRowAtIndexPath 值(在我的例子中说100),它几乎“完全不起作用”,你只会得到看起来只能是随机高度的值细胞。

非常高的单元格似乎可以正常工作,可能类似于“如果 heightForRowAtIndexPath 的高度是估计值的两倍,那么它确实使用实际高度”

需要明确的是,它似乎永远不会使细胞变得太小,但它经常使它们变得太大。

需要明确的是,我没有使用自动布局,它是您必须构建的单元格类型。(恐怕我不知道这与自动布局有什么关系。)这只是 Xcode5/iOS7+。

0 投票
2 回答
1743 浏览

ios - 如何更改已加载的表格单元格的高度?

目前,我在自定义的 uitableview 单元格中加载了 webviews。问题是 Web 视图的大小可变。在 webViewDidFinishLoad 中,我可以根据 html 文档的实际大小来设置 Web 视图的大小。我的问题是在 web 视图完成加载之前已经在 heightForRowAtIndexPath 中设置了高度的表格单元格。如何在表格单元格加载后更改其高度?

理想情况下,我觉得我应该能够使用这样的代码行。

但是,我似乎无法访问 heightForRowAtIndexPath 中的单元格信息。我觉得我已经很好地解释了这种情况,但是你认为我应该发布的任何代码我都可以放在这里。我已经尝试了很多东西(所以到处都有评论和失败的尝试),但主要问题是我似乎无法在正确的位置访问单元格信息,例如 heightForRowAtIndexPath。如果我什至可以在 webViewDidFinishLoad 中以某种方式设置单元格信息,我可以简单地设置单元格的框架,我也在其中设置 Web 视图的框架大小。

下面是我的表格单元子类的设置。

这是我最后一次尝试使用部分 Gavin 的代码。但是,由于 cellForRowAtIndexPath 是不可分配的,所以现在我已经离开了,当然没有办法设置表格单元格。

0 投票
3 回答
584 浏览

ios - heightForRowAtIndexPath 涉及许多单元格

我需要动态更改单元格的行。这就是为什么我使用 selectedIndex 变量来存储选定的行

然后我用这个改变我选择的行的高度:

当我运行此代码并选择第一行时,一切正常,但如果选择第二行(mytableview 中只有两行),我什至会得到修改后高度的所有下一个空行。我哪里错了?