summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.iOS
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.iOS')
-rw-r--r--Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs19
-rw-r--r--Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs2
2 files changed, 18 insertions, 3 deletions
diff --git a/Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs
index 5483a169..7cd691f9 100644
--- a/Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs
+++ b/Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs
@@ -41,6 +41,7 @@ namespace Xamarin.Forms.Platform.iOS
FormsUITableViewController _tableViewController;
IListViewController Controller => Element;
ITemplatedItemsView<Cell> TemplatedItemsView => Element;
+ public override UIViewController ViewController => _tableViewController;
public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint)
{
@@ -927,7 +928,7 @@ namespace Xamarin.Forms.Platform.iOS
ITemplatedItemsList<Cell> GetSectionList(int section)
{
- return (ITemplatedItemsList<Cell>)((IList)TemplatedItemsView.TemplatedItems) [section];
+ return (ITemplatedItemsList<Cell>)((IList)TemplatedItemsView.TemplatedItems)[section];
}
void OnSectionPropertyChanged(object sender, PropertyChangedEventArgs e)
@@ -1015,6 +1016,7 @@ namespace Xamarin.Forms.Platform.iOS
readonly ListView _list;
IListViewController Controller => _list;
UIRefreshControl _refresh;
+ bool _refreshingEventSent;
bool _refreshAdded;
@@ -1089,6 +1091,14 @@ namespace Xamarin.Forms.Platform.iOS
public override void ViewWillAppear(bool animated)
{
+ base.ViewWillAppear(animated);
+
+ if (_list.IsRefreshing && _refresh.Refreshing)
+ {
+ // Restart the refreshing to get the animation to trigger
+ UpdateIsRefreshing(false);
+ UpdateIsRefreshing(true);
+ }
}
protected override void Dispose(bool disposing)
@@ -1114,8 +1124,13 @@ namespace Xamarin.Forms.Platform.iOS
void OnRefreshingChanged(object sender, EventArgs eventArgs)
{
- if (_refresh.Refreshing)
+ if (_refresh.Refreshing && !_refreshingEventSent)
+ {
Controller.SendRefreshing();
+ _refreshingEventSent = true;
+ }
+ else if (!_refresh.Refreshing)
+ _refreshingEventSent = false;
}
void RemoveRefresh()
diff --git a/Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs b/Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs
index 68ae10bb..ab212b21 100644
--- a/Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs
+++ b/Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs
@@ -121,7 +121,7 @@ namespace Xamarin.Forms.Platform.iOS
Layout.LayoutChildIntoBoundingRegion(Element, new Rectangle(Element.X, Element.Y, size.Width, size.Height));
}
- public UIViewController ViewController
+ public virtual UIViewController ViewController
{
get { return null; }
}