2017-07-17 45 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 –