问题标签 [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.
uitableview - 从 -tableView:cellForRowAtIndexPath: 计算“indexPath”处的自定义 UITableViewCell 高度:?
我在UITableViewCell
自定义类里面调整了一个自定义的高度,我相信我需要使用-tableView:cellForRowAtIndexPath:
方法来调整单元格的高度。我试图在自定义单元格类中调整自定义单元格的高度,然后在给定的索引路径中抓取单元格,然后返回该单元格的高度,如下所示:
但我得到堆栈溢出。有什么更好的方法来解决这个问题?
ios - IndexPathForCell 和 IndexPathForRowAtPoint 崩溃
我有UITableViewController
静态分组单元格。在特定视图中,我想删除一些单元格。如果我只是隐藏它们,它会留下一个空白空间,所以我想将单元格设置rowHeight
为0
。我在执行此操作时遇到了麻烦,因为我似乎无法获得要隐藏的单元格的 indexPath。我通过 IB 连接引用了它。在阅读之后,似乎最好的方法是通过heightForRowAtIndexPath
方法。这是我的代码:
在此之前,我正在尝试IndexPathForCell
,但也会崩溃。从我阅读的内容来看heightForRowAtIndexPath
,即使细胞不可见,也应该可以工作。当它崩溃时,调试器中也没有任何显示。
ios - 取消隐藏后表格单元格并不总是显示隐藏的内容
我有一个带有自定义单元格的表格,在单元格中有两个 UIView,顶部始终显示,底部隐藏。
当cellCellForRowAtIndexPath被调用时,所有单元格的高度都会降低,只显示顶部的 UIView。
当用户单击单元格时,该单元格会展开,然后我取消隐藏第二个 UIView。问题是有时第二个 UIView 在第一次单击单元格时不会出现。
再次单击单元格使其全部消失,然后再次单击,它总是完美显示。向下滚动然后选择另一个,第一次单击它可能不会出现或将在错误的位置,再舔两次,它就完美了。
我认为这是一个 ReusableCell 问题,但我不知道如何解决它。
所以单击一个单元格会调用如下所示的didSelectRow
如您所见,我已经尝试了 reloadData 和 BeginUpdates ,但这仍然不起作用。这是因为我隐藏/取消隐藏应该在选择时将 Alpha 设置为 0 然后 1 吗?这是可重复使用的细胞吗?
哦,为了完整性。您可能会注意到我有一个所有高度都不同的表格,这就是我更改第二个 UIView 的 Y 的原因。
uitableview - ios 7 uitableviewcell 绘图更改
我在 iOS 7 上遇到了自定义单元格绘图的问题(在 iOS 6 和 5 上工作正常)。
在 heightForRowAtIndexPath 上,我返回的高度小于每个部分最后一行的单元格实际高度,因为我需要最后一个单元格与下一部分的标题重叠。
似乎 Apple 在 iOS 7 上进行了绘图改进或其他操作,因为只有从 heightForRowAtIndexPath 返回的高度正在绘制,所以我的单元格将在底部被切割。
任何想法将不胜感激。
objective-c - 如何根据内容以编程方式设置单元格的高度
我有 UITableView,其中有文本或文本 + 图像。
我想做的单元格的高度取决于文本和图像。
我有固定大小的图像(比如说 300 宽 x200 高)。
知道如何根据内容设置单元格的高度。
假设我有文字,高度应该是 200 像素,如果我有文字/图像,我的高度应该是 400 像素。
知道如何在这种情况下设置高度。
ios - 基于单元格内对象的自定义单元格高度
我制作了一个自定义单元格,在其中放置了一个UITextView
,我想根据UITextView
文本长度的长度更改单元格的高度。我知道如何使用 静态更改单元格高度heightForRowAtIndexPath
,但我无法根据内容动态地进行更改。
我已经阅读了这个论坛和其他几个主题的十几个主题,但我没有找到我正在寻找的答案。
有任何想法吗?
ios - 基于图像大小的单元格行高
我正在使用 API,需要UITableViewCell
根据图像高度调整高度。
我的if
陈述必须是:
- 如果没有图像则将高度设置为 140,否则...
- 如果有图像,则将高度设置为 106 + imageHeight
我似乎无法让这个工作,有什么想法吗?
将根据需要发布任何额外的代码,谢谢!
我收到一条错误return 106 + imageHeight;
消息,上面写着“指向接口 'NSString' 的指针的算术运算,这对于该架构和平台来说不是恒定大小”,并且应用程序在到达该位置时崩溃。
编辑:数组内容(来自 API 的 JSON)
图片.h
图片.m
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+。
ios - 如何更改已加载的表格单元格的高度?
目前,我在自定义的 uitableview 单元格中加载了 webviews。问题是 Web 视图的大小可变。在 webViewDidFinishLoad 中,我可以根据 html 文档的实际大小来设置 Web 视图的大小。我的问题是在 web 视图完成加载之前已经在 heightForRowAtIndexPath 中设置了高度的表格单元格。如何在表格单元格加载后更改其高度?
理想情况下,我觉得我应该能够使用这样的代码行。
但是,我似乎无法访问 heightForRowAtIndexPath 中的单元格信息。我觉得我已经很好地解释了这种情况,但是你认为我应该发布的任何代码我都可以放在这里。我已经尝试了很多东西(所以到处都有评论和失败的尝试),但主要问题是我似乎无法在正确的位置访问单元格信息,例如 heightForRowAtIndexPath。如果我什至可以在 webViewDidFinishLoad 中以某种方式设置单元格信息,我可以简单地设置单元格的框架,我也在其中设置 Web 视图的框架大小。
下面是我的表格单元子类的设置。
这是我最后一次尝试使用部分 Gavin 的代码。但是,由于 cellForRowAtIndexPath 是不可分配的,所以现在我已经离开了,当然没有办法设置表格单元格。
ios - heightForRowAtIndexPath 涉及许多单元格
我需要动态更改单元格的行。这就是为什么我使用 selectedIndex 变量来存储选定的行
然后我用这个改变我选择的行的高度:
当我运行此代码并选择第一行时,一切正常,但如果选择第二行(mytableview 中只有两行),我什至会得到修改后高度的所有下一个空行。我哪里错了?