我正在执行collectionview设置,并启用了本地数据和multiselect。当我在实际设备上运行此程序时,出现了一些渲染问题。当我快速滚动时,需要一段时间才能显示活动单元。当我停下来然后突然弹出时,它们会保持一段时间不活动。
在didSelect上,我正在执行以下操作;
[FunctionName("NoResponseHandlerFunction")]
public static void Run(
[ActivityTrigger] DbReadOptions readOptions)
如上所述,所有collectionview选择都有不同的方式处理选择。如果我在第1部分中选择了某些内容,我也会在第2部分中选择单元格。
selected和deselected状态在这样的子类中处理;
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath) as! FRMenuCollectionViewCell
let selectedCells:[IndexPath] = collectionView.indexPathsForSelectedItems!
cell.isSelected = true
switch indexPath.section {
case 0:
let item = fixedData[indexPath.row]
itemSelection.append(item)
break
case 1:
handleContinentSelection(with: indexPath)
break
default:
print("An unexpected case occured")
}
}
func handleContinentSelection(with indexPath: IndexPath) {
let continent = continentData[indexPath.row]
for country in countryData {
if (country.continent?.continentName)! == continent {
itemSelection.append(country.countryName!)
if let index = countryData.lastIndex(of: country) {
collectionView?.selectItem(at: IndexPath(row: index, section: 2), animated: false, scrollPosition: [])
}
}
}
}
因此,选定状态为填充文本,取消选定状态被概述。一切正常,在快速滚动时(在侧面滚动中最明显),它只能在我的Apple TV上缓慢渲染。任何有关如何优化这一点的想法将不胜感激。