【问题标题】:How to override cell style for xib-less cell inherited from MvxBindableTableViewCell如何覆盖从 MvxBindableTableViewCell 继承的无 xib 单元格的单元格样式
【发布时间】:2013-07-19 21:04:14
【问题描述】:

我正在尝试从 MvxBindableTableViewCell 继承以重新定义我自己的单元格(包含更多文本字段和图像)。 从 MyCustomSource.GetOrCreateCell 创建新实例时,使用的 ctor 始终是 MyCustomCell(IntPtr 句柄)。在本例中,使用的单元格样式为 Default,但我想使用 Value1 样式(以重复使用右对齐的蓝色文本)。

在传统的 iOS 应用程序中,解决方案是从我的 ctor 中使用“initWithStyle:reuseIdentifier:”基础 ctor。 对于 MonoTouch/MvvmCross 项目,正确的解决方案可能是在 XCode 设计器中进行。但我正在使用 VS(不能将我的解决方案与 XS 一起使用),我只想使用无 xib 的 UI 来跟踪我的源代码控制中的更改。

知道如何实现我的目标吗?

纪尧姆。

【问题讨论】:

    标签: uitableview xamarin.ios mvvmcross


    【解决方案1】:

    就个人而言,我不太倾向于使用标准单元格类型。相反,我倾向于使用 XIB 或基于手动代码的布局来构建自己的自定义单元格。

    但是,如果您想在 Mvx 中使用,您可以轻松使用标准单元格类型。

    在 v3 中,您可以选择使用 MvxStandardTableViewCell 构造函数,该构造函数将 UITableViewCellStyle 作为参数 - 例如见https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewCell.cs#L40

    这也暴露给 MvxStandardTableViewSource https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewSource.cs#L60 的构造函数


    在去年的 vNext 中,我认为相同的功能通过旧的 MvxSimpleBindableTableViewSource 公开 - 请参阅 https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxSimpleBindableTableViewSource.cs#L62

    【讨论】:

    • 感谢您的回答斯图尔特。我将像您一样使用我自己的单元格类型,而不依赖于任何单元格样式考虑,实际上似乎是一个更好的主意。但是我遇到了一个新的麻烦:当尝试将我的 UI 元素从 ctor 添加到 ContentView 时(正如 Xam 在他们的教程中所解释的那样),这个似乎还没有被初始化(使用UICollectionViewCell)。这就是您在自定义单元格上使用第三种方法“初始化”的原因吗?还是我这边出了问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2016-12-05
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    相关资源
    最近更新 更多