Używam natywnego MonoTouch.Obsługa okien dialogowych dla funkcji Pull to Refresh w systemie iOS, jednak ponieważ w systemie iOS 7 kontrolery widoku mogą być wyświetlane w trybie pełnoekranowym (poniżej paska nawigacji i paska stanu), funkcja Pull to Refresh przestała działać poprawnie.
Próbowałem się bawić TableView.ContentOffset
i TableView.ContentInset
właściwości w moim MonoTouch.Dialog.DialogViewController
podklasy, ale nie mogłem znaleźć żadnego punktu dostosowania. MonoTouch.Dialog.DialogViewController
używa wielu prywatnych stałych / pól / klas, co utrudnia jego rozszerzenie.
Również https://github.com/migueldeicaza/MonoTouch.Dialog wygląda na przestarzały.
Czy ktoś z powodzeniem używa funkcji Pull to Refresh w iOS 7 z MonotTouch.Dialog?
Odpowiedzi:
1 dla odpowiedzi № 1OK, nagle zdałem sobie sprawę, że moim celem wdrożenia aplikacji jest iOS> = 6.x (niedawno zrezygnowałem z obsługi iOS 5), więc mogę użyć UIKit
jest rodzimy UIRefreshControl
zamiast tego, który skaluje się zarówno z iOS 6, jak i iOS 7;).
0 dla odpowiedzi nr 2
Miałem ten sam problem i miałem inne rozwiązanie. Robiłem co następuje
public MyController()
: base(null)
{
RefreshRequested += MyController_RefreshRequested;
Root = new RootElement(null);
}
Natychmiast dzwoniłem do ReloadComplete, to źle, nie rób tego
void MyController_RefreshRequested(object sender, EventArgs e)
{
InvokeOnMainThread(
delegate
{
ReloadComplete();
}
}
Musisz trochę poczekać, zanim odświeżysz ...
void MyController_RefreshRequested(object sender, EventArgs e)
{
InvokeOnMainThread(
delegate
{
Thread.Sleep(1000);
ReloadComplete();
}
}
przy okazji, oryginalny problem wygląda tak, jakby został naprawiony na githubie przez bhomles: https://github.com/migueldeicaza/MonoTouch.Dialog/issues/190