【发布时间】: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