我得到一条白色线条,在细胞高度变化动画期间通过折叠的区域标题进行动画显示。请注意,仅当选择单元格导致上方部分的高度更改时,才会发生折叠部分标题。
此处代码:https://github.com/sketch34/ios-swift-collapsible-table-section
非常简单的设置。重新加载选中的行:
## Enable gzip compression ##
# compress text, HTML, JavaScript, CSS, and XML
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
# Remove browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
## END Enable gzip compression ##
如果选择了更改单元格内容:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
selectedRow = indexPath
self.tableView.reloadRows(at: [selectedRow], with: .automatic)
}
除了屏幕截图中的工件外,我无法在第一时间看到白线的来源。我试过了:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: CollapsibleTableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell") as? CollapsibleTableViewCell ??
CollapsibleTableViewCell(style: .default, reuseIdentifier: "cell")
let item: Item = sections[indexPath.section].items[indexPath.row]
cell.nameLabel.text = item.name
// *** This line changes cell contents if selected ***
cell.detailLabel.text = (selectedRow != nil) && indexPath.elementsEqual(selectedRow!) ? item.detail : ""
return cell
}
更多细节:
// In my UITableViewHeaderFooterView.
self.backgroundColor = UIColor.clear
self.backgroundView?.backgroundColor = UIColor.clear
// In my UITableViewController.
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.none