我有一个特殊UIPickerView
的地方,通过点击它手动选择行。发生这种情况时,所选行的样式会更改(文本颜色更改并显示带有复选标记的图像)。同样,如果选择了另一行,则先前选择的行被“取消选择”,即它的样式更改为正常。
现在,当我选择一行时,它看起来是正确的:
但是,当我滚动到另一行并且所选行不再位于中间时,不会应用新样式(应在此处选择 Antarktis):
但是,如果我进一步向下滚动几行然后备份它会将行更新为正确的样式:
取消选择时我有同样的问题。如果我选择另一行,旧行似乎没有被取消选择,我得到了这个(现在应该取消选择 Antarktis):
但是,如果我将 Antarktis 行向后滚动到中间,它确实被取消选择了。所以我的问题是UIPickerView
不会立即重绘可见但不在中间的行(它们可能以某种方式缓存)。它们仅在特定行消失然后返回或显示全新行时才会重绘。
那么我可以强制它重绘那些行吗?我尝试在和特定行(它们是 的子类)上调用该setNeedsDisplay
方法,但它什么也没做。UIPickerView
UITableViewCell
谢谢!