Skip to content

Instantly share code, notes, and snippets.

@jgold6
Created January 22, 2014 19:20
Show Gist options
  • Select an option

  • Save jgold6/8565510 to your computer and use it in GitHub Desktop.

Select an option

Save jgold6/8565510 to your computer and use it in GitHub Desktop.
Monotouch.Dialog ReloadComplete() call causes topmost Element to scroll off screen.
public void DemoRefresh ()
{
int i = 0;
var root = new RootElement ("Pull to Refresh"){
new Section () {
new MultilineElement ("Pull from the top to add\na new item at the bottom\nThen wait 1 second")
}
};
var dvc = new DialogViewController (root, true);
//
// After the DialogViewController is created, but before it is displayed
// Assign to the RefreshRequested event. The event handler typically
// will queue a network download, or compute something in some thread
// when the update is complete, you must call "ReloadComplete" to put
// the DialogViewController in the regular mode
//
dvc.RefreshRequested += delegate {
// Wait 3 seconds, to simulate some network activity
NSTimer.CreateScheduledTimer (1, delegate {
root [0].Add (new StringElement ("Added " + (++i)));
root [0].Add (new StringElement ("Added " + (++i)));
// Notify the dialog view controller that we are done
// this will hide the progress info
dvc.ReloadComplete ();
dvc.TableView.SetContentOffset(new System.Drawing.PointF(0,-60), true); // Workaround, compensates for the 60 pix that ReloadComplete() scrolls the content up.
});
};
dvc.Style = UITableViewStyle.Plain;
navigation.PushViewController (dvc, true);
dvc.TriggerRefresh();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment