gpt4 book ai didi

iphone - UITableView 分隔符样式问题

转载 作者:太空狗 更新时间:2023-10-30 03:40:18 25 4
gpt4 key购买 nike

我有一个默认为空白的表格 View 。用户可以向其中添加单元格。

我希望分隔线在没有单元格时是清晰的,而在有单元格时是灰色的。

我正在使用这段代码:

if ([[self.fetchedResultsController fetchedObjects] count] == 0)
{
self.routineTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.routineTableView.separatorColor = [UIColor clearColor];
}
else
{
self.routineTableView.separatorColor = [UIColor grayColor];
}

问题是,当我启动带有空白表格的应用程序时,如果我添加单元格,则在我重新启动应用程序之前灰色线条不存在。但是如果我从那里的单元格开始,然后删除它们,然后重新添加它们,线条就在那里。有什么建议吗?

最佳答案

也许你错过了这个?

...
else
{
self.routineTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; // or you have the previous 'None' style...
self.routineTableView.separatorColor = [UIColor grayColor];
}

编辑:你需要这个,但不仅仅是这个......根据 Apple 文档:

The value of this property is one of the separator-style constants described in UITableViewCell Class Reference class reference. UITableView uses this property to set the separator style on the cell returned from the delegate in tableView:cellForRowAtIndexPath:.

这意味着已经加载的单元格的样式不会改变。只需滚动表格以强制重绘单元格,就会出现分隔符...

然后你必须:

  1. 在插入单元格之前设置

  2. 添加第一个单元格时重新加载 tableView

NSFetchedResultsController 做起来并不容易,你应该看看它的 delegate寻求解决方案...或改变方向,例如隐藏 tableView 直到您获得结果...


编辑 2:您也可以简单地添加:

[self.tableView reloadData];

但这是一个肮脏的解决方法,它只会重新加载完整的 tableView,失去 NSFetchedResultsController 的大部分好处...

关于iphone - UITableView 分隔符样式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6233445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com