如何通过按下按钮在滚动期间停止 UIPickerView - Xamarin.IOS

How to stop UIPickerView during scrolling by pressing a button - Xamarin.IOS

我正在开发 Xamarin.ios 项目。

我创建了编号为 1 到 10000 的 UIPickerView。它滚动得很好。

这是我的需求。我需要在按下按钮时滚动时停止 UIPickerView,并希望获得停止的位置值。

请帮我解决这个问题。 研究了很多都没有解决

A UIPickerView 包含一个 UIScrollView 作为其子视图之一,因此如果您递归搜索该视图,然后测试它是否仍在滚动(动画),因为 "flinged",你可以通过将内容偏移量设置为当前内容偏移量来阻止它死在它的轨道上。

public void StopScrolling(UIPickerView view)
{
    void FindViews(UIView subView)
    {
        foreach (var item in subView.Subviews)
        {
            switch (item)
            {
                case UIScrollView sv:
                    if (sv.Dragging)
                        sv.SetContentOffset(sv.ContentOffset, false);
                    break;
                default:
                    FindViews(item);
                    break;
            }
        }
    }
    FindViews(view);
}