다른 것들 중에서 버튼이 포함 된 uitableviewcell (cell1)의 하위 클래스가있는 곳에서 tableview를 만들려고합니다. 이 버튼은 cell1에서 버튼을 클릭하면 바로 아래에있는 uitableviewcell (cell2)의 다른 하위 클래스를 추가 및 제거합니다. 나는 내가 원하는 것을 꽤 가난한 일러스트를 첨부했습니다. 특정 UITableViewCell 아래에서 UITableViewCell 추가 및 제거
내가 시도한 것은 버튼을 두드렸을 때 cell1의 배열 [indexPath.row + 1]에있는 셀 객체의 배열에 cell2를 삽입 한 다음 탭하여 닫을 때 해당 객체를 배열에서 제거하는 것입니다. 세포. 삽입 또는 셀을 제거한 후에 배열을 반영하도록 업데이트하려면 tableView를 다시로드해야합니다. 그러나이 위치에서 나사가 위로 올라야하고 올바르게 동작해야합니다. 아래의 코드는 더 나은 그림을 제공합니다 :
var tableCellObjects: [NSObject] = [] //grab the cell objects from an API call and append the cell2Object when a cell1 is expanded
func moreButtonTapped(sender: UIButton) {
var indexPath: NSIndexPath!
if let superview = sender.superview {
if let cell = superview.superview as? Cell1 {
indexPath = tableView.indexPathForCell(cell)
}
}
if tableCellObjects[sender.tag].isKindOfClass(Cell1Object) {
let cell1Object = tableCellObjects[sender.tag] as! Cell1Object
if cell1Object.expanded {
cell1Object.expanded = false
sender.setImage(UIImage(named: "MoreButtonClosed.png"), forState: .Normal)
tableCellObjects.removeAtIndex(indexPath.row+1)
tableView.reloadData()
} else {
cell1Object.expanded = true
sender.setImage(UIImage(named: "MoreButtonOpen.png"), forState: .Normal)
tableCellObjects.insert(Cell2Object(param1, param2: param2), atIndex: indexPath.row+1)
tableView.reloadData()
}
}
}
코드가 많은 간단한 질문. 그냥 키 코드를 게시하십시오. – Lumialxk
나는 보풀 부호처럼 보이는 것을 지웠다. 남은 것은 세포를 추가/제거하는 기능입니다. 그게 핵심 코드의 의미인가요? – Frodgers