gpt4 book ai didi

ios - 在触摸时突出显示 UITableViewCell 但保持选择的最 native 解决方案是什么

转载 作者:行者123 更新时间:2023-11-30 11:50:12 24 4
gpt4 key购买 nike

我想要实现的目标你可以在 native 时钟应用程序中看到。当您选择铃声时,单元格会获得复选标记附件并在触摸时突出显示,但随后会通过淡入淡出动画直接取消突出显示。

所以我的问题是,有没有办法通过我的 UITableViewCell 实例的 selectionStyle 使用临时 native 单元格突出显示,并在之后保留选择以显示附件 View 。

我知道我可以在 didSelectRowAt 委托(delegate)方法中编写 tableView.deselectRow(at: indexPath,animated: true) 。但这消除了将复选标记绑定(bind)到选择状态的能力。

我也知道我可以自己为单元格的背景设置动画,但这很糟糕,因为 iOS 可以更改默认的突出显示颜色,并且我希望我的应用程序使用尽可能少的自定义 UI 代码来感觉尽可能原生.

我在这里缺少一种本地方式吗?

最佳答案

我能想到两个选择。

<小时/>

最简单,但丢失了取消突出显示的动画。

在表格 View 上将 allowsSelection 设置为 true 并在单元格上覆盖 setSelected 来执行此操作。

override func setSelected(_ selected: Bool, animated: Bool) {
accessoryType = (selected ? .checkmark : .none)
}

当用户按下该单元格时,它将突出显示该单元格,然后显示一个复选标记。

<小时/>

更复杂但保留动画。

不要在 tableview 上使用 allowsSelection 属性并自行跟踪所选行。

cellForRowAt:中,您需要设置单元格以显示/隐藏复选标记。

didSelectRowAt: 中,您需要删除旧选定行的复选标记,更新跟踪选定行的值,并将复选标记添加到新选定的行。

关于ios - 在触摸时突出显示 UITableViewCell 但保持选择的最 native 解决方案是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48405666/

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