作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 IOS 新手,试图设计一个 Accordion 菜单。我被卡住了。首先,我让我的 UI 具有一些静态内容( TableView 和 View 中的 3 行标签......)。在尝试设置 Accordion 时。 .没有显示任何回应..
这里是我的 viewcontroller.swift
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
let previndexPath = selectedIndexPath
if indexPath == selectedIndexPath
{
selectedIndexPath = nil
}
else
{
selectedIndexPath = indexPath
}
var indexPaths:Array <NSIndexPath> = []
if let previous = previndexPath
{
indexPaths += [previous]
}
if let current = selectedIndexPath
{
indexPaths += [current]
}
if indexPaths.count > 0
{
tableView.reloadRowsAtIndexPaths(indexPaths, withRowAnimation:UITableViewRowAnimation.Automatic)
}
}
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
(cell as! TableViewCell).watchFrameChanges()
(cell as! TableViewCell2).watchFrameChanges()
}
func tableView(tableView: UITableView, didEndDisplayingCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath)
{
(cell as!TableViewCell).ignoreFrameChanges()
(cell as!TableViewCell2).ignoreFrameChanges()
}
override func viewWillDisappear(animated: Bool)
{
super.viewWillDisappear(animated)
for cell in tblvw.visibleCells as! [TableViewCell] {
cell.ignoreFrameChanges()
}
for cell in tblvw.visibleCells as! [TableViewCell2] {
cell.ignoreFrameChanges()
}
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath == selectedIndexPath {
return TableViewCell.expandedHeight
} else {
return TableViewCell.defaultHeight
}
if indexPath == selectedIndexPath {
return TableViewCell2.expandedHeight
} else {
return TableViewCell2.defaultHeight
}
return 0.0
}
最佳答案
我也有同样的问题。问题是何时实现多个单元。解决办法是:
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
for cell in tableView.visibleCells {
if(cell.reuseIdentifier == "YOUR_IDENTIFIER_FROM_CELL")
{
let ncelda = cell as! TableViewCell
ncelda.ignoreFrameChanges()
}
else
{
let mcelda = cell as! TableViewCell2
mcelda.ignoreFrameChanges()
}
}
}
关于ios - 如何在 swift 中设置 tableview Accordion ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837736/
我是一名优秀的程序员,十分优秀!