我有一个tableCell,它有一个UIButton,需要执行几个函数。
-
我需要将图像旋转90度(向上/向下箭头(,在按下按钮之间交替。
-
同一个按钮需要在同一个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
函数可以";配置";细胞恢复到其正常状态。