Swift 可折叠页眉动画未设置动画
您好,我已经在我的swift中实现了一个可折叠的标题,标题效果很好,我能够折叠和解压该部分。问题是,当我用新信息重新加载tableView时,标题中的箭头将丢失其动画,并且视图中的箭头在加载时不会旋转。如果你有任何想法,请告诉我 代码: 桌面视图-Swift 可折叠页眉动画未设置动画,swift,uitableview,Swift,Uitableview,您好,我已经在我的swift中实现了一个可折叠的标题,标题效果很好,我能够折叠和解压该部分。问题是,当我用新信息重新加载tableView时,标题中的箭头将丢失其动画,并且视图中的箭头在加载时不会旋转。如果你有任何想法,请告诉我 代码: 桌面视图- func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { if let header = tableView.d
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: CollapsableHeader.CollapsableTableHeaderIdentifier) as? CollapsableHeader {
header.setCollapsed(false)
header.delegate = self
return header
}
}
//加载信息后,我会打电话
self.tableView.reloadData()
折叠割台-
//其他方法
override func prepareForReuse() {
super.prepareForReuse()
}
//Collapsed options
func setCollapsed(_ collapsed: Bool) {
//
// Animate the arrow rotation (see Extensions.swf)
//
self.arrow.rotate(collapsed ? 0.0 : .pi / 2)
}
尝试检查在上创建的示例项目 链接- 按钮处理程序
//Header cell button Action
@objc func HandleheaderButton(sender: UIButton){
//check status of button
if let buttonTitle = sender.title(for: .normal) {
if buttonTitle == "Show"{
//if yes
self.collapaseHandlerArray.append(self.section[sender.tag])
sender.setTitle("Hide", for: .normal)
}
else {
//if no
while self.collapaseHandlerArray.contains(self.section[sender.tag]){
if let itemToRemoveIndex = self.collapaseHandlerArray.index(of: self.section[sender.tag]) {
//remove title of header from array
self.collapaseHandlerArray.remove(at: itemToRemoveIndex)
sender.setTitle("Show", for: .normal)
}
}
}
}
//reload section
self.mainTableView.reloadSections(IndexSet(integer: sender.tag), with: .none)
}
谢谢标题。设置已折叠(错误)。Wr u r setting true??尝试在@McDonal_11检查简单代码以制作可折叠的表格视图谢谢您的回复,我有一个切换功能,当用户单击标题时会激活。当前,在加载视图和获取信息时会出现问题loaded@iOSGeek谢谢你的回复!我遵循了您的示例,我只缺少了重新加载部分,而没有重新加载整个表。谢谢你,这解决了我的问题!!接受我发布的答案,谢谢,并关闭此帖子“虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。”
//Header cell button Action
@objc func HandleheaderButton(sender: UIButton){
//check status of button
if let buttonTitle = sender.title(for: .normal) {
if buttonTitle == "Show"{
//if yes
self.collapaseHandlerArray.append(self.section[sender.tag])
sender.setTitle("Hide", for: .normal)
}
else {
//if no
while self.collapaseHandlerArray.contains(self.section[sender.tag]){
if let itemToRemoveIndex = self.collapaseHandlerArray.index(of: self.section[sender.tag]) {
//remove title of header from array
self.collapaseHandlerArray.remove(at: itemToRemoveIndex)
sender.setTitle("Show", for: .normal)
}
}
}
}
//reload section
self.mainTableView.reloadSections(IndexSet(integer: sender.tag), with: .none)
}