问题标签 [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.
ios - iOS - 动态调整 tableviewcell 大小的问题
我知道这里已经有很多关于这个问题的潜在答案,但到目前为止,我看到的所有答案中有 99.995% 使用 sizeWithFont,现在已弃用。
我在这里处理一个 tableviewcell,所以它应该很简单,但事情对我来说并不奏效。这是通过在线阅读一些答案而整理的代码。这是一个单元格标签。
故事板中定义的高度设置为 44,标签本身的行设置为 0,以便标签可以决定它需要多大。
问题#1:如果设置为标签的文本没有自动换行,我仍然(显然)得到额外的填充,这不是我想要的。我不确定如何计算是否真的有自动换行。如果没有自动换行(即文本不长于标签,那么我只想返回 44)。
问题 #2:由于某种原因,如果我的文本太长,例如价值 5 行,则字符串末尾的一些文本由于某种原因被截断,尽管 MAXHEIGHT 为 10,000,但它几乎就像它决定停止自动换行。如果此时我增加填充,比如说 88,那么我可以看到所有内容。(诡异的)。
寻找一些优雅的解决方案、反馈、帮助等等。谢谢!
ios - 为什么 self.tablview.rowHeight 不从情节提要返回高度?
我需要以编程方式仅设置一行的高度,所有其他行都是在情节提要中创建的具有不同高度的静态单元格。
在我的代码中,第 5 个单元格应默认为“隐藏”,因此我想将此行的高度设置为 0.0。所有其他单元格都应该使用它们在情节提要中的高度,我正在使用该方法tableView:heightForRowAtIndexPath
来设置单元格的高度。
问题是self.tableView.rowHeight
总是返回658
高度,这是一个完全错误的值。
ios - 视图控制器加载所有表格视图单元格而不是第一个单元格
这是我的控制器的简化版本。我正在创建一个表视图,并使用一个核心数据查询来初始化这个控制器,该查询返回一个包含大约 300 个对象的数组。
我通过将每个单元格的高度硬编码为 100.0f 来简化这里的代码。不是只加载第一次加载时在屏幕上实际可见的前 5-6 个单元格,而是对 heightForRowAtIndexPath 的调用实际上完成了 300 次(对于所有单元格),这使得 UI 加载缓慢。
知道我在这里可能做错了什么吗?
ios - 从 Storyboard 加载自定义 UITableViewCell
目前我正在使用带有情节提要的自动布局来动态调整自定义UITableViewCell
的大小。除了滚动时存在内存泄漏外,一切都正常工作。
我知道问题出在打电话
从内部
我的问题是,创建参考单元的最佳方法是什么?如何在没有的情况下从情节提要加载单元格dequeueReusableCellWithIdentifier
?
可以调用dequeueReusableCellWithIdentifier
并viewDidLoad
创建一个参考单元作为属性吗?
我需要参考单元来调整大小。
谢谢你的帮助。
ios - iOS - 块执行后从 heightForRowAtIndexPath 返回值
我是 iOS 开发的新手,在我的应用程序中,我需要在heightForRowAtIndexPath
方法中计算动态表格单元格的高度。
问题是我不想在“回调”块完成之前返回值..objective-c 中有没有办法做到这一点?
这是我的方法实现:
objective-c - 使用自定义字体的 UITableViewCell 的动态高度
我一直在尝试制作一个动态表格视图单元格以在聊天中使用您可以看到实际上我使用单元格的恒定高度(88)但是如果文本更长,那将会很糟糕
我使用的是 Muli 字体,这就是为什么我不知道如何计算正确的高度。
这是我的代码:
谢谢
ios - 动态调整静态 UITableViewCell 的大小
我有一个UITableView
有许多静态单元格的。没有原型。
一个单元格作为 aUITextField
和 a UITextView
。我希望UITextView
根据UITextField
. 这不是问题。
我的问题是我想调整UITableViewCell
这两个控件所在的大小 - 这样当UITextView
隐藏单元格高度为 30 时,它的高度为 70(这使得UITextView
完全可见)。
由于它们是静态单元格,我只需将 IB 中的高度设置为 70(最大),因此当UITextView
隐藏单元格时,单元格中有很多未使用的空间,我想通过将单元格高度更改为 30 来消除这些空间.
我假设我需要告诉单元格使用类似的东西重绘
但是如何从子视图(UITextField
)中获取对单元格的引用?
另外我将如何告诉单元格新的高度?我应该标记它并使用
就像我对动态原型尺寸一样?
ios - iOS - 在旋转时使用动态单元格高度重绘 TableViewCells
一旦设备旋转,我怎样才能让我的单元格重绘?
当我在 iPhone 上进行测试时,默认方向是纵向,所以当设备处于纵向时,我的动态单元格的高度与它们需要的一样高:这意味着当我旋转到横向时,屏幕上有很多空白空间细胞。当我在 iPad 上测试时,情况正好相反。旋转到纵向时,我的部分文本被截断,因为默认值为横向。我有两个设备的单独故事板,两个视图控制器都设置为“方向:推断”
(纵向)
(横向)
这就是 iPhone 上发生的情况 - 拉伸标签具有深红色背景,因此您可以看到标签的实际大小。但是,单元格高度不会重新计算,并且由于底部标签被限制在单元格的底部,因此它们一直位于底部。如果我从拉伸标签(带有背景的标签)添加一个约束到单元格的底部,它所做的就是像这样拉伸标签:
(标签被拉伸)
这告诉我的是,现在我无法让单元格知道方向是什么,并在它更改为适合时重新绘制。这是我heightForRowAtIndexPath
计算单元格高度的代码:
到目前为止,为了让它旋转,我已经尝试过[self.container reloadData]
,容器是我TableView
的willRotateToInterfaceOrientation
,didRotateToInterfaceOrientation
但无济于事。我还尝试将它放在 viewDidLoad 中,以便在以正确高度以横向模式加载视图时检测并加载,但这也不起作用。对于 iPhone,无论我做什么,它都会加载纵向视图的高度并且不会在旋转时更新。
我发现了一些我认为可能会有所帮助的问题,但我似乎无法让这个答案对我有用,即使这似乎与我的问题相同,而且这个问题似乎更关注单元格宽度而不是高度和我不确定它是否以同样的方式适用。
这甚至是一个教程,当我在 iPhone 上运行它时,它也没有在旋转时调整 TableViewCells 的大小。
本教程似乎对更改表格高度有所了解,因此我将begin/endUpdates
代码添加到我的didRotateToInterfaceOrientation
中,认为这可能会导致更改,但这并没有奏效。
因此,如果有人有任何建议或知道解决方案,将不胜感激,因为我正在用这个撞砖墙!
ios - 根据内容调整tableviewcell高度
我正在创建一个类似 facebook 的应用程序。我想根据内容调整单元格的高度。tableviewcell 由UIImageView
和UILabel
组成UIButton
。我可以通过使用委托来调整单元格的高度heightForRowAtIndexPath
,但是,有时某个单元格中没有图像。
据我所知,heightForRowAtIndexPath
是先叫的。所以,我不能传递在cellForRowAtIndexPath
.
我想知道我是否可以在heightForRowAtIndexPath
inside传递对象的高度cellForRowAtIndexPath
。
ios - UITableViewDelegate tableView:heightForRowAtIndexPath: 插入单元格时崩溃
我有一个包含不同部分和单元格样式的表格视图,即 iOS 设置应用程序。
我在使用 heightForRowAtIndexPath 时遇到问题。如果我包含它,每当我尝试插入一个单元格时,应用程序就会崩溃:
但是,由于表格视图有这么多种单元格,我需要实现该方法。例如,大多数单元格的高度为 44 像素,但我的日期选择器单元格并不总是可见且高度为 216 像素。如果我使用自动布局,单元格的高度很好,但插入单元格的动画很跳跃。
我以前没有遇到过这个问题,但决定将表格视图中的一个部分分成两个不同的部分。现在,每当我尝试插入一个单元格时,应用程序就会崩溃。这在以前没有发生,只有在实施 heightForRowAtIndexPath 或estimatedHeightForRowAtIndexPath 时才会发生。
我发现这个 UITableView insertRowsAtIndexPaths 抛出 __NSArrayM insertObject:atIndex:'object cannot be nil' 错误 ,但它没有提供其他选择 - 它只是说不要实现 heightForRowAtIndexPath,我需要这样做。有没有办法解决这个问题?
编辑 添加了 heightForRowAtIndexPath 的实现 - 这并不复杂(我有一些用于部分和行的枚举,datePickerIndex 是日期选择器的行,如果不存在则为零)