我一直在網上衝浪弄清楚如何讓我的表格高度符合其內容(我的內容是不同的高度)。Monotouch:UITableViewCell height
我試過看這個樣本.... http://simon.nureality.ca/simon-says-project-d-uitableviewcells-autosize-based-on-text-height-in-monotouch-heres-how/ ...但我不能讓它工作。
這裏是我到目前爲止的代碼..細胞高度實際工作,但文本與trailling dotts中心(而不是迪林出整個幀):
public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
string item = this.Lst.Items [indexPath.Section];
UITableViewCell cell = tableView.DequeueReusableCell (_cellIdentifier);
if (cell == null) {
cell = new UITableViewCell (UITableViewCellStyle.Default, _cellIdentifier);
cell = new UITableViewCell (UITableViewCellStyle.Subtitle, _cellIdentifier);
}
// Find the height...
SizeF textWidth = new SizeF (tableView.Bounds.Width - 40, float.MaxValue);
SizeF textSize = tableView.StringSize(item, Font, textWidth, LineBreakMode);
// Textlabel...
cell.TextLabel.Text = item;
cell.TextLabel.Font = Font;
cell.TextLabel.Frame = new RectangleF(cell.TextLabel.Frame.X, cell.TextLabel.Frame.Y, textSize.Width, textSize.Height);
//cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;
cell.ImageView.Image = PlaceholderImage;
cell.EditingAccessory = UITableViewCellAccessory.DisclosureIndicator;
// Sizing the cell...
RectangleF rectCell = cell.Frame;
rectCell.Height = textSize.Height;
cell.Frame = rectCell;
return cell;
}
public override float GetHeightForRow(UITableView tableView, NSIndexPath indexPath)
{
string item = this.Lst.Items [indexPath.Section];
SizeF size = new SizeF (tableView.Bounds.Width - 40, float.MaxValue);
float height = tableView.StringSize (item, Font, size, LineBreakMode).Height + 10;
return height;
}
而且它看起來像這樣.. 。
任何想法有什麼不好?
謝謝!
魔
您是否可以將UILabel添加爲單元格的ContentView的一部分?看起來這比試圖操縱TextLabel框架要容易得多。 – Anuj
Emmm不知道如何做到這一點(這對我來說是新的):) – MojoDK