【问题标题】:Xamarin Forms - TapGestureRecognizer not working for iOSXamarin 表单 - TapGestureRecognizer 不适用于 iOS
【发布时间】:2017-12-21 10:14:36
【问题描述】:

我正在循环创建图像列表并附加 一个 TapGestureRecognizer 给他们每个人运行一个方法。它适用于Android,但不适用于iOS。这是为什么?在 Grid 或 ScrollView 中是否存在问题?

这是我的代码:

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>

【问题讨论】:

  • 当我点击图片时,ViewImage(I) 方法没有运行。
  • 迭代后尝试添加 TapGestureRecognizer,因为事件是循环运行的。
  • 我刚刚尝试了你的代码,它在 iOS 模拟器中就像一个魅力。也许它与 ViewImage 的实现有关?如果您在该行上设置断点,应用程序会在该行上中断吗?
  • @StevenThewissen 你说得对,我在方法中添加了一个显示警报,它按预期触发。谢谢!

标签: ios xamarin xamarin.ios xamarin.forms


【解决方案1】:

设置InputTransparent="True"View

【讨论】:

  • @Kowalski 您能否解释一下为什么会这样。我的意思是为什么我们需要在 iOS 中将滚动视图设置为 InputTransparent
猜你喜欢
  • 2022-01-15
  • 2023-01-24
  • 2020-03-14
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 2017-04-30
相关资源
最近更新 更多