MonoTouch UITableView问题

时间:2011-11-26 00:32:47

标签: .net ios xamarin.ios uitableview

我在我的应用程序中使用了UITableView。我有以下问题:

  1. 我需要知道用户何时选择了一行。从我收集的内容来看,我需要编写一个实现UITableViewDelegate的类。然后我需要覆盖RowSelected方法。无论如何在我的控制器中执行此操作(而不是创建另一个类)。这似乎有点矫枉过正。像myTableView.RowSelected += MyMethod()这样的东西。我不确定为什么RowSelected首先不是一个事件......

  2. 我想在左侧剪切UITableView(标题中的文字)的标题(默认为右侧)。我知道您可以设置LineBreakMode,但似乎我必须在GetViewForHeader方法中执行此操作(在标题中创建我自己的UIView)。有更简单的方法吗?

1 个答案:

答案 0 :(得分:2)

MonoTouch提供(接近)iOS SDK的完整绑定 - 即.NET基类库中已经存在一些东西并且没有重复(但是如果你需要它们我们会添加它们,只需填写一个{{3在这种情况下报告)。

通常,这些绑定非常接近原始API( C 或基于Objective-C),因为:

  • 使用MonoTouch提供的 btouch 工具(可用于绑定您自己的ObjectiveC API),绑定过程基本上是自动化的;

  • 它真的有助于移植存在的代码,查找代码示例和API文档(Apple开发人员网站,博客,问题在stackoverflow.com上...)

  

我不确定为什么RowSelected首先不是一个事件......

Objective-C中不存在.NET提供的事件。在很多(但不是全部)情况下,MonoTouch添加了.NET风格的事件,可以避免定义自己的xxxDelegates类型。通常,事件名为On +委托选择器的名称。

  

有更简单的方法吗?

如果UITableView(ObjectiveC)API 恕我直言有点令人困惑 - 但还有另一种选择:bug。它使表格更多更容易,并且具有.NET友好的API。

P.S。请尝试每个条目仅询问一个问题,因为您无法将多个答案标记为已接受。它还可以帮助那些在网站上寻找类似问题/答案的人。