【发布时间】:2024-01-13 03:20:01
【问题描述】:
对于我的应用程序,我创建了一个自定义 UITableView,其中还包含一个按钮。我想将此按钮用作“标记为收藏”按钮。
因此,我将其写入我的 UITableViewCell 的 swift-File 中:
@IBAction func markedButtonPressed(_ sender: Any) {
var objectToBeAdded: myStruct = data(data1: test, data2: test)
if objectIsInArray(list: firmeninformation){
markedButton.setImage(#imageLiteral(resourceName: "star blanc"), for: UIControlState.normal)}
else{
markedButton.setImage(#imageLiteral(resourceName: "star marked"), for: UIControlState.normal)
favArray.append(firmeninformation)
}
}
我认为这不是最好的方法,因为如果我过滤我的 TableView,“标记为收藏”的单元格的位置保持不变。因此,如果我标记第一个 Cell 然后过滤我的 TableView,第一个 Cell 总是“标记为收藏”。对更好的解决方案有什么建议吗?
【问题讨论】:
-
每个单元格都需要有收藏按钮吗?如果是这样,则创建一个自定义单元格并让该单元格包含收藏按钮。在
tableView:cellForRowAt:中从您的模型(数组或某些数据源)中读取并设置收藏按钮是否突出显示。在您的单元格中为按钮设置正常和突出显示的图像 -
是的,每个单元格都应该有一个收藏按钮。我已经创建了一个包含 UIButton 的 TableViewCell。但是我怎样才能从一个特定的单元格中处理一个函数(比如“设置突出显示的图像”)。
-
如果可以点按整个单元格以标记为收藏,那么您可以识别从
tableView:didSelectRowAt点按的单元格,否则使用按钮的目标和选择器。在选择器中,按下的按钮将作为参数传递。在函数中,识别let location = button.convert(button.frame, to: tableView)然后let indexPath = tableView.indexPathsForRows(in: location)?.first按下的按钮的indexPath -
好的,谢谢,我试试看
标签: swift uitableview uibutton