我在Xamarin C#iOS应用程序中有一个UISegmentedControl。有时,当一个片段已经被选中并且我选择另一个片段时,它会突出显示:
我的第一个想法是,在段的线程上运行的段的ValueChanged上执行的代码太多了,这可能会阻止操作系统运行代码来切换突出显示。所以,我尝试了一个快速测试,看看我是否可以在另一个线程中运行它:
private void DefSeg_ValueChanged(object sender, nint selectedSegment)
{
Parallel.Invoke(() =>
InvokeOnMainThread(delegate {
viewerSettings.SetDefinitionVisibleState(selectedSegment);
})
);
}
但这并没有解决它。什么会导致操作系统一次突出显示两个段?
可能相关或不相关的另一条信息:UISegmentedControl是使用Monotouch.Dialog在UITableViewCell内创建的。