UIButton用于扩展和收缩带有StackViews的UITableViewCell,以及带有静态数据的下拉视图



我有一个tableCell,它有一个UIButton,需要执行几个函数。

  1. 我需要将图像旋转90度(向上/向下箭头(,在按下按钮之间交替。

  2. 同一个按钮需要在同一个tableCell内的UIStackView中添加n个UIVIEWS,并使用静态数据显示或隐藏这些视图。

为了线程n=7

在我的ViewController中,我声明了一个布尔值,并将其设置为false

var isExpanded = false

牢房内部ForRowAt,我有:

cell.button.addTarget(self, action: #selector(buttonAction(_:)), for .touchUpInside)

在同一个TableViewController类文件中,我有:

@objc func buttonAction(sender: UIButton) {
let cell = MyCell()
cell.arrowImg.transform = CGAffineTransform(rotatingAngle: .pi)

for i in 0..<n.count {
cell.stackView.addArrangedSubViews(i)
}

我知道我错过了一些非常基本的东西,但YouTube、堆栈溢出和谷歌并没有向我展示我错过了什么。

如果我本质上使用UIButton在tableCell的两种状态之间切换,我是否需要布尔值?是否显示额外的UIViuews/翻转上/下箭头?

并且一旦UIViews是";加载的";在按下按钮的特定单元格中,当用户将单元格从屏幕上滚动时,如何在其装饰后保留扩展的单元格大小?函数中的reloadData?

任何时候想要更改单元格的布局,都需要通知表视图控制器,以便它可以更新布局。

如果你使用按钮来更改单元格的外观——显示/隐藏视图、添加视图/旋转图像等等——你需要在控制器中跟踪它。然后,当用户将该单元格滚动出视图并返回视图时,您的cellForRowAt函数可以";配置";细胞恢复到其正常状态。

最新更新