2017-07-17 44 views
0

我在一个循环中创建图像列表,并将TapGestureRecognizer附加到每个人都可以运行的方法。它在Android上工作,但不在iOS上。这是为什么?它在Grid中还是在ScrollView中有问题?Xamarin Forms - TapGestureRecognizer不适用于iOS

这里是我的代码:

foreach (var i in files) 
     { 
      Image image = new Image { Aspect = Aspect.AspectFit }; 
      image.Source = ImageSource.FromUri(new System.Uri(i)); 
      Button button = new Button(); 
      link = i; 

      var tapGestureRecognizer = new TapGestureRecognizer(); 
      tapGestureRecognizer.Tapped += (s, e) => 
      { 
       ViewImage(i); 

      }; 

      image.GestureRecognizers.Add(tapGestureRecognizer); 
      gridy.Children.Add(image, 0, num); 
      num++; 
     } 

这里是我的XAML:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     x:Class="YHTS.Gallery" 
     Title="Gallery" 
     BackgroundColor="Black"> 

<ScrollView > 
    <Grid x:Name="gridy"> 

     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="auto" /> 
     </Grid.ColumnDefinitions> 
    </Grid> 
</ScrollView> 

+0

InputTransparent="True"究竟不工作? –

+0

当我点击图像时,ViewImage(I)方法不运行。 –

+1

尝试在迭代后添加TapGestureRecognizer,因为事件正在循环运行。 –

回答

1

设置的View

+0

这样做。谢谢! –

+0

@Kowalski你能解释一下为什么这个工作。我的意思是为什么我们需要在iOS中将scrollview设置为InputTransparent –