- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个带表格的 View Controller 。第一次创建和呈现单元格时,将按顺序调用以下函数(除了 View Controller 函数):
....
func viewWillAppear(_ animated: Bool)
func cellForRow(at indexPath: IndexPath) -> UITableViewCell?
optional func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
func viewWillDisappear(_ animated: Bool)
....
当我退出屏幕时,调用了以下函数。
....
func viewWillAppear(_ animated: Bool)
func viewWillDisappear(_ animated: Bool)
....
但是为什么在viewWillAppear
和viewWillDisappear
之间没有调用willDisplaycell
呢?
日志是:
viewWillAppear
cellForRowAtIndexPath: 0
willDisplayCell: 0
cellForRowAtIndexPath: 1
willDisplayCell: 1
cellForRowAtIndexPath: 2
willDisplayCell: 2
viewWillDisappear
viewWillAppear
viewWillDisappear
代替:
viewWillAppear
cellForRowAtIndexPath: 0
willDisplayCell: 0
cellForRowAtIndexPath: 1
willDisplayCell: 1
cellForRowAtIndexPath: 2
willDisplayCell: 2
viewWillDisappear
viewWillAppear
willDisplayCell: 0
willDisplayCell: 1
willDisplayCell: 2
viewWillDisappear
最佳答案
我最终所做的是检查 viewDidAppear 中显示了哪些单元格。不确定这是最佳答案,所以请不要犹豫添加更好的答案。
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self logVisibleSections];
}
-(void)logVisibleSections
{
for (NSIndexPath *indexPath in self.tableView.indexPathsForVisibleRows)
{
// Do what needs to be done with visible cells
}
}
关于ios - 为什么不会第二次调用 willDisplayCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52758794/
我已经尝试了几乎所有我能想到的方法,用谷歌搜索了很多,搜索了 SO,但仍然找不到解决方案。这是问题所在: 我有一个自定义的 UITableViewCell,里面有几个标签。文本动态变化,背景颜色(单元
我有一个带表格的 View Controller 。第一次创建和呈现单元格时,将按顺序调用以下函数(除了 View Controller 函数): .... func viewWillAppear(_
我有我的数据源 (productsAry),它是通过 SQLite 填充的,我一次获取 25 个项目。我正在调用“willDisplayCell”UITableView 委托(delegate),当
我的目标是定义我自己的单元格样式,包括背景、字体和大小。我试试这个。 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRo
每当我创建一个新单元格时,就会出现奇怪的魔法。如果我稍后退出 View Controller (数据全部保存),然后再次返回 View Controller (重新加载数据等),一切都很好(但如果我留
您好,当用户向下滚动时,如果用户滚动到顶部,则通常会在没有动画的情况下移动,从而为表格 View 单元格设置动画。 -(void)tableView:(UITableView *)tableView
有一个 UITableView 帖子。 看到的帖子 id 保存在 sqlite 我想以橙色显示已看过的帖子,以黑色显示其他帖子。 但是,当我在 willDisplayCell 方法中为看到的帖子设置橙
我有两种方法可以改变单元格的附件类型。第一个在所有单元格加载后调用,另一个在用户单击任何单元格时调用。 第二种方法工作正常,它从选定的单元格中删除复选标记。不幸的是,第一个什么都不做(我想在其中一个单
我正在尝试将动画放在 UITableViewCell 的底部到顶部,该代码可以正常工作: -(void)tableView:(UITableView *)tableView willDisplayCe
我正在尝试在 willDisplayCell 方法中实现两个自定义单元格 customCellView1 和 customCellView2 - 这似乎只支持一个单元格。有没有办法重写它以包括两个?谢
有一个 UITableView 的帖子。 已查看的帖子 ID 保存在 sqlite 中 我想显示,看到的帖子是橙色的,其他的是黑色的。 但是当我在 willDisplayCell 方法中为 seen
在我所有的 UITableView 编程中,我总是在 -[UITableViewDataSource tableView:cellForRowAtIndexPath:] 中配置我的 UITableVi
我想为我的自定义单元格制作自定义角圆角背景,它与下面的代码一起使用,但第一行不受影响,我应该向上滚动它以使其具有背景 func tableView(tableView: UITableView, w
我试图通过加载与他们在传递中单击的单元格相对应的数字列表来预选择表格 View 中的单元格。我从 nsuserdefaults 加载它并使用 willdisplaycell 方法单击单元格。我已经包含
我正在尝试在将显示单元格中对 UITableViewCell 进行初始设置,但它不起作用。谁能帮帮我? -(void) tableView:(UITableView *)tableView willD
我想更改 TableView 中单元格的状态。我尝试在“cellForRowAtIndexPath”方法中设置状态,但它没有用。然后我看到帖子说为了改变单元格的状态需要使用委托(delegate)方法
我对 Obj-C 和 Cocoa 的东西还很陌生,所以请原谅任何愚蠢的行为。 我正在使用带有 NSTreeController 的 NSOutlineView,它向它提供了我自己的对象数组。我的委托(
this page谈到平滑表格 View 滚动的技巧,说表格 View 单元格不应该在 tableView:cellForRowAtIndexPath: 上绘制而是在 tableView:willDi
我从互联网上看到了下面这一段,并按照他的建议将我的代码移到了 willDisplayCell。但是,我没有看到任何性能改进。所以我做了一些进一步的调查,发现还有其他人说这段话是不真实的。 Proper
我偶然发现了一篇博文,其中一位作者解释了如何在滚动整个表格 View 时使用以下方法逐渐扩大单元格的大小: -(void)tableView:(UITableView *)tableView will
我是一名优秀的程序员,十分优秀!