public override float GetHeightForRow(UITableView tableView, NSIndexPath indexPath)
        {
            if (this.offscreenCell == null)
            {
                this.offscreenCell = new ItemCell();
            }

            var cell = this.offscreenCell;

            cell.UpdateFonts();
            var item = this.model.Items[indexPath.Row];
            cell.Title = item.Title;
            cell.Body = item.Body;

            cell.SetNeedsUpdateConstraints();
            cell.UpdateConstraintsIfNeeded();

            cell.Bounds = new RectangleF(0, 0, this.TableView.Bounds.Width, this.TableView.Bounds.Height);

            cell.SetNeedsLayout();
            cell.LayoutIfNeeded();

            var height = cell.ContentView.SystemLayoutSizeFittingSize(UIView.UILayoutFittingCompressedSize).Height;
            height += 1;

            return height;
        }