テキストは、スペースを超えた場合のUITableViewCellが拡大してください
-
22-09-2019 - |
質問
私はUITableViewCell
を持っており、それがUITableViewCellStyleDefault
です。私はUITableViewCell
よりも長いテキストを配置しようとすると、それを切り捨てます。どのように私は、細胞は、このテキストに対応するために拡張するのですか?
解決
あなたは何ができるのである... iphoneの画面よりも多くのセルの幅を広げることができません 1>フォントを小さくします 2>テキスト複数行
を作りますUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
CGRect contentRect = CGRectMake(80.0, 0.0, 240, 40);
UILabel *textView = [[UILabel alloc] initWithFrame:contentRect];
textView.text = mytext;
textView.numberOfLines = 2;
textView.textColor = [UIColor grayColor];
textView.font = [UIFont systemFontOfSize:12];
[cell.contentView addSubview:textView];
[textView release];
他のヒント
私はあなたがやろうとしている正確に何をしようとしていないが、それはおそらくこのような何かを行くだろう。
あなたはその中のテキスト文字列の長さに応じて、ビューのサイズを変更する必要があります。
テーブルビューのデリゲート(あなたのビューコントローラ)を実装する必要があります。
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
Message *msg = (Message *)[messages objectAtIndex:indexPath.row];
CGSize size = [[msg text] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:kLabelFontSize]
constrainedToSize:CGSizeMake(220.0f, 480.0f)
lineBreakMode:UILineBreakModeTailTruncation];
CGFloat minHeight = 20.0f;
CGFloat height = size.height > minHeight ? size.height : minHeight;
return height;
}
各列の作り方を背の高い表示を指示。
あなたはまた、同様のUITableViewCellラベルのフレームのサイズを変更する必要がありますする必要があるとしている。
私は、すべてのセルが同じ高さと幅する必要があると思います。あなたはUITableViewCells
プロパティを使用してtableView's rowHeight
の高さを変更することができます。
たとえば、もしあなたサブクラスUITableViewController
self.tableView.rowHeight = 100;
別のオプションは、先に示したように。
セルのサブビューとしてcontentViewカスタムUILabel
を追加することです 所属していません StackOverflow