Ich habe ein tableview mit durch UIStackViews bevölkerten Zellen, mit Tasten als arrangedSubviews, die mit einigen Funktionen erstellt werden. Die Draufsicht in der stackView ist sichtbar und alle anderen Ansichten sind versteckt, die Taste in dem Draufsichten eine Wirkung hat, und wenn sein die anderen Ansichten genannt sollten zwischen sichtbaren und verborgenen wechseln.wie man Sichtbarkeit von arrangedSubviews in einem UIStackView zu wechseln, das ist innerhalb eines tableViewCell swift3
func generateButtons() -> [[UIButton]]{
var topButtonArray = [UIButton]()
var finalButtonArray = [[UIButton]]()
for title in array1 {
topButtonArray.append(createButton(title: title , action: "buttonPressed"))
}
for button in topButtonArray {
var buttonArray = [UIButton]()
buttonArray.append(button)
for title in array2 {
buttonArray.append(createButton(title: title, action: "moveOn"))
}
finalButtonArray.append(buttonArray)
}
return finalButtonArray
}
func generateStackViews() -> [UIStackView] {
stackViewArray = [UIStackView]()
let finalButtonArray = generateButtons()
for buttons in finalButtonArray{
stackViewArray.append(createStackView(subViews: buttons))
}
for stackView in stackViewArray{
let views = stackView.arrangedSubviews
let hiddenViews = views[1..<views.count]
for views in hiddenViews{
views.isHidden = true
}
}
return stackViewArray
}
func buttonPressed(){
//let stackViewArray = generateStackViews()
for stackView in stackViewArray{
let views = stackView.arrangedSubviews
let hiddenViews = views[1..<views.count]
for view in hiddenViews {
if view.isHidden == true{showViews(view: view)} else{hideViews(view: view)}
}
}
}
func showViews(view : UIView){
UIView.animate(withDuration: 0.3) {
view.isHidden = false
}
}
func hideViews(view : UIView) {
UIView.animate(withDuration: 0.2) {
view.isHidden = true
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "First")!
let stackViewArray = generateStackViews()
cell.contentView.addSubview(stackViewArray[indexPath.row])
return cell
}
Gerade jetzt was ist passiert, dass nur die verborgenen Ansichten in der letzten Zelle zwischen sichtbar und versteckt sind Makel (egal welche Zelle i klicken) - Ich denke, ich brauche die Hin- und Herschalten auf allen Zellen instanziiert, aber ich kippe finde einen Weg, das zu tun.
ein anderes Problem ist, dass ich möchte, dass eine Draufsicht nur die versteckten Ansichten in seiner Zelle öffnen, ich denke, ich brauche indexPath.row irgendwie außerhalb von 'CellForRowAt indexPath'.