问题标签 [uitableviewautomaticdimension]

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 回答
273 浏览

ios - 具有自动尺寸的 UITableView 无法正确显示单元格。总是那个单元格中的最后一个标签有时会被破坏

简单案例:

我的一些单元格是否以正确的方式随机显示:

  • 这是一个好方法:

在此处输入图像描述

  • 这不是一个好方法。

在此处输入图像描述

它取决于什么,以及如何解决它?

有趣的事:

我在最后添加了另一个标签:

现在最后一个标签有时无法正确显示。但是我以前的标签现在每次都是正确的。到底是怎么回事?

在此处输入图像描述

在此处输入图像描述

0 投票
5 回答
1736 浏览

ios - scrollToRowAtIndexPath 总是从顶部滚动而不是从当前偏移量

在我的UITableView我使用一种方法滚动到最后一个单元格:

但这并没有按预期工作,因为即使我在倒数第二个单元格上,表格也总是从顶部滚动。如何解决这个问题?

0 投票
1 回答
679 浏览

ios - 如何在不跳转的情况下使用 CADisplayLink 和 UITableViewAutomaticDimension 滚动时对 UITableView 执行更新?

链接到 UITableView 的子类

为什么 UITableView 滚动时会跳转?你能帮助我吗?

对于帮助我的人,我开始并稍后奖励 100 的另一个赏金:-)

如何在UITableView设置它的同时执行一些更改contentOffset

这就是我设置我的方式scrollDisplayLink

然后在scrollTable我做以下事情:

滚动很好,除非行1-4被注释或我禁用UITableViewAutomaticDimension. 当他们没有被评论时,表格跳转的时间与滚动时currentContentOffset不同。0为什么会这样?是线程问题还是其他问题?

笔记:

UITableView适用于UITableViewAutomaticDimension

0 投票
2 回答
2452 浏览

objective-c - 首次加载时某些单元格的 UITableViewCell 高度错误

UITableViewAutomaticDimension用来计算我的表格视图单元格的高度。这对我来说可以。但是对于某些单元格,返回的高度是 44,而不是动态计算高度。但是在向上滚动回看同一个单元格时,高度会完美地重新计算。所以我想我没有任何错误的约束,因为在我手动滚动并更正所有单元格高度后,之后不会显示约束破坏警告。

编辑

下面给出的是图像的屏幕截图(裁剪时弄乱了,但可以从个人资料图像中看到问题。)。第一个像元高度计算正确。但其余的都是错误的。 在此处输入图像描述

0 投票
1 回答
597 浏览

ios - UITableView:使用自定义/可变单元格高度滚动到底部在初始滚动时不准确

编辑:https ://streamable.com/rfym将在行动中展示它。我第一次按滚动到底部时,它并没有一直到底部。然后我手动一直到底部并快速向上滚动。一旦我再次按下滚动到底部,它就可以正常工作,因为它正在使用缓存高度。

所以,我已经看到了很多答案,但似乎没有一个对我有用,我很确定这些对许多其他人也不起作用:

tableView.setContentOffset(CGPointMake(0, CGFloat.max), animated: true)

轰隆隆,瞬间,我的 tableView 消失了。

tableView.setContentOffset(CGPointMake(0, self.tableView.contentSize.height - self.tableView.frame.size.height), animated: true)

不准确。它不会一直到底部。有时,它会过冲!

tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: self.replies.count - 1, inSection: 0), atScrollPosition: .Bottom, animated: true)

同样,与前一个一样,这是不准确的。

我知道为什么这是不准确的。我需要的是一个解决方案...

这里有一些代码要运行:

请记住,只有初始滚动到底部并不会一直滚动。如果我用手指一直滚动到底部,然后向上滚动到顶部并触发滚动到底部,那就完美了。

原因很简单:我会tableView.willDisplayCell在每个单元格上触发,这意味着所有高度都已缓存。这意味着tableView.estimatedHeightForRowAtIndexPath在初始滚动后完美运行。

但是,如果我从不滚动到底部以缓存所有高度并且我尝试以编程方式滚动到底部,它就不会到达那里。为什么?因为我有tableView.estimatedHeightForRowAtIndexPath回报113。

有些人可能会争辩说我需要一个更准确的估计,但我拒绝接受这种想法。我的细胞可以小到50个,大到5000个。没有准确的估计

我该如何减轻这种情况?

也许我需要在不同的时间缓存我所有的高度?那是几点?我不想自己做任何计算。其美妙之tableView.willDisplayCell处在于我可以缓存cell.frame.size.height而不是自己进行繁琐的计算。

编辑 2:我有一个有趣的解决方案......这非常笨拙......而且不可接受......但从技术上讲它是有效的。附上娱乐。

0 投票
1 回答
299 浏览

ios - 滚动时根据下载的图像高度使用 UITableViewAutomaticDimension 调整自定义表格单元格的高度

我在运行时获取图像的 URL 并下载并在表格中显示这些图像。图像正在异步下载(使用 SDWebImage)。更重要的是,我想以实际尺寸显示所有这些图像。第一次,表格加载正常,我有超过 5 个部分(每个部分包含一行),当我滚动表格并尝试使用 reloadSections 更新部分时,表格显示的单元格图像高度错误。有人可以帮我解决这个问题吗?注意:我正在使用 UITableViewAutomaticDimension

0 投票
1 回答
128 浏览

objective-c - 带有 UITextView 的 UITableViewRowAnimationAutomatic 无法正确显示

在 iOS 9 上,使用 UITableViewAutomaticDimension 和 viewDidLoad 上的 200.festimatedRowHeight 设置我的 tableView。

它适用于带有图像、按钮或标签的单元格,但对于带有 textView 和按钮的单元格,按钮显示正确,但当我的 tableView 更新时 textView 不会展开。

你对想要有什么想法可能是我的错误吗?

我应该在我的单元格中以编程方式更新高度约束吗?

谢谢

0 投票
2 回答
590 浏览

ios - 文本为空字符串时自动布局UILabel的动态高度计算不起作用?

在 iOS 8 中,我有UILabel一个UITableViewCell. 我希望单元格根据UILabel's text 具有动态高度。它工作正常。但是当文本是空字符串时,它似乎有一个默认高度,但我希望它为零。

这是我所做的:

  1. 使用 . 设置单元格的约束masonry。设置topbottom约束。
  2. tableView.estimatedHeight
  3. 返回UITableViewAutomaticDimension委托heightForRow方法

那我做错什么了吗?有什么帮助吗?

0 投票
6 回答
14414 浏览

swift - UITableViewAutomaticDimension 在 iOS 8 上不起作用

我正在按照本教程制作自我调整大小的单元格。

我将自定义单元格注册到表格视图中,并在单元格 xib 中手动给了每个子视图约束。请参考GitHub 中的源代码

在一个单元格的内容视图中垂直排列 3 个标签在 iOS 9 中效果很好,但在 iOS 8 中却不行(在设备和模拟器中都进行了测试)。

在 iOS 8 中,一个单元格没有合适的高度,并且不是每个标签都显示它的全部文本。

iOS 8 不适合:

在此处输入图像描述

正如我所料,iOS 9:

在此处输入图像描述

任何意见,将不胜感激!

更新

代码viewDidLoad

0 投票
2 回答
2053 浏览

ios - 检测 UITableViewCell 上的双击和单击以执行两个操作

我有一个PFQueryTableViewController我正在尝试学习一些 tableView 交互。

我目前拥有的:tableView 单元格在点击时增加其高度,didSelectRowAtIndexPath或者我基本上可以将单元格相关数据与下一个 viewControllerperformSegueWithIdentifier一起使用,同时prepareForSegue使用一次点击。

在下面的代码中,如果我注释“点击代码以增加 tableView 单元格的高度”代码,我可以检测到双击。否则,单击会增加高度,因为代码位于 didSelect 块内。

我需要什么:单击一下,单元格高度会增加或减少。当单元格高度增加时,如果我双击,它应该将单元格数据设置为 next UIViewController

如果没有,单击应该增加或减少高度。双击应该将单元格数据转移到下一个UIViewController

代码如下:

我可以使它工作的另一种方法是,如果我可以在代码NSIndexPath之外获得选定的单元格didSelectRowAtIndexPath,我基本上可以使用双击来执行 if else 以获得所需的操作。你能NSIndexPath脱离 tableView 默认块吗?