Skip to content

Commit c7aa16f

Browse files
author
Josip Ćaleta
committed
Fix iOS swipe renderer (#10)
1 parent 7ea22b4 commit c7aa16f

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

src/Calendar.Plugin/iOS/SwipeAwareContainerRenderer.cs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,7 @@ protected override void OnElementChanged(ElementChangedEventArgs<ContentView> e)
4747
{
4848
base.OnElementChanged(e);
4949

50-
if (NativeView == null)
51-
return;
52-
53-
if (e.NewElement != null)
50+
if (e.NewElement is SwipeAwareContainer element && !element.SwipeDetectionDisabled)
5451
AddGestureRecognizers();
5552

5653
if (e.OldElement != null)
@@ -61,16 +58,19 @@ private void AddGestureRecognizers()
6158
{
6259
try
6360
{
64-
if (!NativeView.GestureRecognizers.Contains(_rightGestureRecognizer))
61+
if (NativeView == null)
62+
return;
63+
64+
if (!NativeView.GestureRecognizers?.Contains(_rightGestureRecognizer) ?? true)
6565
NativeView.AddGestureRecognizer(_rightGestureRecognizer);
6666

67-
if (!NativeView.GestureRecognizers.Contains(_leftGestureRecognizer))
67+
if (!NativeView.GestureRecognizers?.Contains(_leftGestureRecognizer) ?? true)
6868
NativeView.AddGestureRecognizer(_leftGestureRecognizer);
6969

70-
if (!NativeView.GestureRecognizers.Contains(_upGestureRecognizer))
70+
if (!NativeView.GestureRecognizers?.Contains(_upGestureRecognizer) ?? true)
7171
NativeView.AddGestureRecognizer(_upGestureRecognizer);
7272

73-
if (!NativeView.GestureRecognizers.Contains(_downGestureRecognizer))
73+
if (!NativeView.GestureRecognizers?.Contains(_downGestureRecognizer) ?? true)
7474
NativeView.AddGestureRecognizer(_downGestureRecognizer);
7575
}
7676
catch (Exception)
@@ -81,16 +81,19 @@ private void RemoveGestureRecognizers()
8181
{
8282
try
8383
{
84-
if (NativeView.GestureRecognizers.Contains(_rightGestureRecognizer))
84+
if (NativeView == null)
85+
return;
86+
87+
if (NativeView.GestureRecognizers?.Contains(_rightGestureRecognizer) ?? false)
8588
NativeView.RemoveGestureRecognizer(_rightGestureRecognizer);
8689

87-
if (NativeView.GestureRecognizers.Contains(_leftGestureRecognizer))
90+
if (NativeView.GestureRecognizers?.Contains(_leftGestureRecognizer) ?? false)
8891
NativeView.RemoveGestureRecognizer(_leftGestureRecognizer);
8992

90-
if (NativeView.GestureRecognizers.Contains(_upGestureRecognizer))
93+
if (NativeView.GestureRecognizers?.Contains(_upGestureRecognizer) ?? false)
9194
NativeView.RemoveGestureRecognizer(_upGestureRecognizer);
9295

93-
if (NativeView.GestureRecognizers.Contains(_downGestureRecognizer))
96+
if (NativeView.GestureRecognizers?.Contains(_downGestureRecognizer) ?? false)
9497
NativeView.RemoveGestureRecognizer(_downGestureRecognizer);
9598
}
9699
catch (Exception)

0 commit comments

Comments
 (0)