1

我正在尝试自定义 Xamarin 的 MonoTouch 示例集中的BubbleCell 示例。我想将 UIImageView 添加到聊天气泡中,并使其在点击 UIImageView 时,代码可以做一些事情(在我的情况下,打开一个模态视图 - 虽然现在我会满足于向输出写入一些东西窗户)。

该示例使用 MonoTouch.Dialog 来布局界面,并具有一个自定义单元格类,用于构造视图并将其添加到 UITableViewCell.ContentView。

我已经设法很容易地将 UIImageView 放入单元格中。但是,我似乎无法弄清楚如何让 UIImageView 响应点击。

我正在 BubbleCell 的构造函数(在 Bubble.cs 中)中构建 UIImageView,同时,我在其中添加以下几行:

var tap = new UITapGestureRecognizer();
tap.AddTarget( () => {
    Console.WriteLine("I'll do something here");
});
imageView.UserInteractionEnabled = true;
imageView.AddGestureRecognizer(tap);

代码编译并运行良好,但是当我点击 UIImageView 时,没有任何反应。

我尝试了一些更改,但都没有解决这个问题:

  • 我将 UIImageView 换成了自定义 UIButton。
  • 我浏览了单元格和 UITableView 的超级视图层次结构,并确保所有超级视图都将 UserInteractionEnabled 属性设置为 true。他们是这样。
  • 我删除了 UITapGestureRecognizer 并尝试继承 UIImageView 并拦截 TouchesBegan/TouchesEnded 方法(它们从未被调用)

为了使 MonoTouch.Dialog 中的表格单元格与用户交互一起工作,我需要做些什么特别的事情吗?

4

1 回答 1

1

你如何创建 UIImageView 对象?我刚刚制作了一个示例项目,它对水龙头的反应完美。

UIImageView btn = new UIImageView (new UIImage ("50-50.png"));
btn.UserInteractionEnabled = true;
UITapGestureRecognizer rec = new UITapGestureRecognizer ();
rec.AddTarget (() => Console.WriteLine ("Test"));
btn.AddGestureRecognizer (rec);
Root = new RootElement ("TestViewController") {
    new Section ("First Section"){
        new UIViewElement ("Test", btn, false)
    },
    new Section ("Second Section"){
    },
};
于 2012-06-28T13:31:07.223 回答