将交互式视图添加到MonoTouch.Dialog UITableViewCell

时间:2012-06-26 00:58:17

标签: ios uitableview xamarin.ios monotouch.dialog

我正在尝试自定义Xamarin的MonoTouch示例集中的BubbleCell sample。我想在聊天气泡中添加一个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中的表格单元与用户交互一起工作,我需要做些什么特别的事情吗?

1 个答案:

答案 0 :(得分: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"){
    },
};