Xamarin.ios 对话:如何使RadioElement多行?

Xamarin.ios 对话:如何使RadioElement多行?,xamarin.ios,multiline,monotouch.dialog,Xamarin.ios,Multiline,Monotouch.dialog,我正在尝试开发一款带有MonoTouch的应用程序。对于某些屏幕,我用代码创建UI。我有一个动态创建的RadioGroup,通常有两到四个RadioElements(选项)。有时,文本(也动态)对于RadioElement来说太长,因此在iPhone上,文本会被短。。。最后 我在谷歌上搜索了一下,没有找到关于如何创建多行RadioElements的建议。我知道,如果您希望文本包含多行,可以创建一个多行元素,但我如何将这两行结合起来呢?我假设我必须从RadioElement继承并覆盖一些事件,但是

我正在尝试开发一款带有MonoTouch的应用程序。对于某些屏幕,我用代码创建UI。我有一个动态创建的
RadioGroup
,通常有两到四个
RadioElement
s(选项)。有时,文本(也动态)对于
RadioElement
来说太长,因此在iPhone上,文本会被短。。。最后

我在谷歌上搜索了一下,没有找到关于如何创建多行
RadioElement
s的建议。我知道,如果您希望文本包含多行,可以创建一个
多行元素
,但我如何将这两行结合起来呢?我假设我必须从
RadioElement
继承并覆盖一些事件,但是哪个呢?是不是MonoTouch.UIKit.UITableViewCell GetCell(MonoTouch.UIKit.UITableView tv)事件

或者,您将如何创建一个
多行元素
,当它被按下/选中时,该元素上会有一个复选标记


还是我的想法应该完全不同?是否有其他组件可以以更简单的方式解决此问题?

这是一种解决方案(至少它解决了我的问题):

public class multieradioelement:RadioElement
{
公共多层次元素(字符串标题、字符串组)
:base(标题,组){}
公共覆盖MonoTouch.UIKit.UITableViewCell GetCell
(MonoTouch.UIKit.UITableView电视)
{
var cell=base.GetCell(tv);
cell.textlab.Lines=2;
返回单元;
}
}
当我现在使用
multieradioelement
而不是
RadioElement
时,文本显示在两行上。对我来说,两行就够了。如果文本更长,并且您仍希望以当前大小将其装入
RadioElement
,则可能需要计算文本的大小,例如,将
cell.TextLabel.font
中的字体设置为更合适的字体

我不知道如何使
RadioElement
本身变大,所以这是我最好的建议

顺便说一下,您可能还应该添加

<代码>保护覆盖MonoTouch.Foundation.NSString CellKey { 获取{return base.CellKey;} } 对于
multieradioelement
,正如我的Xamarin Studio中的intellisense所建议的,在重写
GetCell
时应该这样做,尽管在没有它的情况下似乎也可以工作

如果有人有更好的建议,我很高兴!!(是,两个感叹号:)