У меня проблема с RefreshControl ... У меня есть такой код:
В ViewDidLoad () я вызываю метод InitializeRefreshControl ();
private void InitializeRefreshControl()
{
if (UIDevice.CurrentDevice.CheckSystemVersion(6, 0))
{
//UIRefreshControl iOS6
ordersCollectionView.RefreshControl = new UIRefreshControl();
ordersCollectionView.RefreshControl.AttributedTitle = new NSAttributedString("Pull To Refresh",
new UIStringAttributes()
{
ForegroundColor = UIColor.Red,
KerningAdjustment = 3
});
ordersCollectionView.RefreshControl.ValueChanged += HandleValueChanged;
}
else
{
// old style refresh button and no PassKit for older iOS
NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(UIBarButtonSystemItem.Refresh), false);
NavigationItem.RightBarButtonItem.Clicked += (sender, e) => { Refresh(); };
}
}
Метод HandleValueChange и метод Refresh находятся здесь:
private void HandleValueChanged(object sender, EventArgs e)
{
ordersCollectionView.RefreshControl.BeginRefreshing();
ordersCollectionView.RefreshControl.AttributedTitle = new NSAttributedString("Refreshing",
new UIStringAttributes()
{
ForegroundColor = UIColor.Blue,
KerningAdjustment = 5
});
Refresh();
ordersCollectionView.RefreshControl.EndRefreshing();
}
private void Refresh()
{
var viewModel = (OrdersViewModel)DataContext;
viewModel.OnReloadData();
}
Моя проблема заключается в том, что когда я вытаскиваю collectionVIew, то отображается загрузка Refresh, но она застревает без эффекта загрузки и по-прежнему с текстом «Потяните, чтобы обновить». Когда метод Refresh завершается так, что в течение 0,1 мс отображается эффект загрузки и текст «Обновление», но не перед методом Refresh ... Кто-нибудь знает, как решить эту проблему? Спасибо за ответ.