Xamarin iOS GetCell动态拉伸cellView

时间:2014-07-30 05:02:46

标签: ios uitableview xamarin xamarin.forms

我有以下代码,我已经改编自Xamarin MobileCRM示例:

[assembly: ExportCell(typeof(ListTextCell), typeof(ListTextCellRenderer))]

namespace Manager.iOS
{
class ListTextCellRenderer : TextCellRenderer
{
    public override UITableViewCell GetCell(Cell item, UITableView tv)
    {
        var cellView = base.GetCell(item, tv);
        cellView.TextLabel.Lines = 0;                        
        return cellView;
    }               
}
}

我想让TextLabel在包含的文本多于设备的宽度时进行切换/换行,因此行的大小会随之增大。当我设置Lines = 0时;它包裹标签,但行高保持不变,因此每行只是相互重叠。如何增加行高?

由于

2 个答案:

答案 0 :(得分:1)

在tableView源代码中,您需要覆盖以下方法

public override float GetHeightForRow(UITableView tableView, NSIndexPath indexPath)
{
    var text = new NSString(yourTextHere);
    var size = text.StringSize(UIFont.FromName("FontName", fontSize), new SizeF(tableView.Frame.Width, 70)); // The 70 can be any number, the width is the important part
    return size.Height + 16; // 16 is for padding
 }

答案 1 :(得分:0)

您可能需要在TableView上设置HasUnevenRows或RowHeight