gpt4 book ai didi

ios - tableCell 中的分段控件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:56 27 4
gpt4 key购买 nike

我对表格单元格中的分段控件有疑问。分段控制无 Action

segmentedFilter.addTarget(self, action: #selector(ProductListFilterCell.filterSelected), forControlEvents: .AllEvents)

目标函数:

func filterSelected() {
if let order = ProductListViewModel.OrderBy(rawValue: segmentedFilter.selectedSegmentIndex), let change = orderChanged{
change(order)
}
}

是否可以在表格单元格中进行分段控制?

最佳答案

prepareForReuse中调用addTarget是不正确的,因为这个方法是在cell不再需要的时候调用的。只有重复使用的单元格才会有选择器。

第二个问题是目标:您正在传递 self,它是表格的数据源,但选择器引用单元格。如果您通过多次上下滚动调出重复使用的单元格,您的控件将触发该事件,应用程序将崩溃并显示未知的选择器消息。

您可以通过将方法移动到数据源类中、在 cellForRowAtIndexPath 中添加目标并在 prepareForReuse 中删除目标来解决此问题。

segmentedFilter.addTarget(self, action: #selector(ProductListDataSource.filterSelected), forControlEvents: .AllEvents)
// ^^^^^^^^^^^^^^^^^^^^^^

关于ios - tableCell 中的分段控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38508504/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com