C# 自定义TableViewCell中的Xamarin.iOS标签框在填充数据后不会更新

C# 自定义TableViewCell中的Xamarin.iOS标签框在填充数据后不会更新,c#,ios,uitableview,xamarin,xamarin.ios,C#,Ios,Uitableview,Xamarin,Xamarin.ios,我试图在tableView单元格中实现动态高度标签,但遇到了一个奇怪的问题,我不知道如何解决,因为它出现在iOS 7.1和iOS 8.3上,但没有出现在iOS 8.2上,这非常令人困惑。我目前的执行情况是:1。使用数据2填充自定义tableView单元格标签。在单元格的LayoutSubviews()中,计算并设置标签的新框架高度,以便所有文本都能放入。当我尝试测试我的实现时,iOS 7.1和iOS 8.3上的标签大小并没有更新,但当我触摸手机时,它会直接更新并显示为需要。然而,这并不是在iOS

我试图在tableView单元格中实现动态高度标签,但遇到了一个奇怪的问题,我不知道如何解决,因为它出现在iOS 7.1和iOS 8.3上,但没有出现在iOS 8.2上,这非常令人困惑。我目前的执行情况是:1。使用数据2填充自定义tableView单元格标签。在单元格的LayoutSubviews()中,计算并设置标签的新框架高度,以便所有文本都能放入。当我尝试测试我的实现时,iOS 7.1和iOS 8.3上的标签大小并没有更新,但当我触摸手机时,它会直接更新并显示为需要。然而,这并不是在iOS 8.2上发生的,因为一切都很好。以下是我用数据填充自定义TableViewCell并更新标签框架的代码:

partial class DetailsCell : UITableViewCell
{

    public DetailsCell (IntPtr handle) : base (handle)
    {
    }
    public override void LayoutSubviews(){


        base.LayoutSubviews ();
        address.Lines = 0;
        var labelHeight = StringExtensions.StringSize (accountAddress.Text, address.Font).Height;
        address.Frame = new CGRect (address.Frame.X, address.Frame.Y, address.Frame.Width, labelHeight);
        address.SizeToFit ();

    }

    internal void Populate(ListItem item)
    {
        address.Text = item.Details;
        image.Image = UIImage.FromBundle ("cell.png");
        SetNeedsLayout();
    }



}
StringExtensions.StringSize方法根据标签的内容大小计算标签的高度,并在tableView数据源中将行高度设置为其值时正常工作


也许有些人以前遇到过这个问题,或者知道如何解决它?还是我做错了什么?

您是否在
UITableViewDataSource
中实现了
GetHeightForRow
?是的,我实现了。我听说这可能是Xamarin的bug。