2017-07-17 7 views
0

私はループ内で画像のリストを作成し、それぞれに TapGestureRecognizerを付けてメソッドを実行しています。 Androidでは動作しますが、iOSでは動作しません。何故ですか?グリッドやScrollViewに問題がありますか?ここでXamarinフォーム - iOSでTapGestureRecognizerが動作しない

は私のコードです:ここでは

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のInputTransparentにスクロールビューを設定する必要があるのでしょうか –

関連する問題