テキストの場所を変更し、UITableViewでFULL文字列を表示するにはどうすればよいですか?UITableViewでテキストの位置を変更するにはどうすればよいですか?
ここに私が持っているもののスクリーンショットがあります。一度それを見ると、私の意味を知ることができます。おかげ My App http://img188.imageshack.us/img188/9926/chucknhelp.tif
テキストの場所を変更し、UITableViewでFULL文字列を表示するにはどうすればよいですか?UITableViewでテキストの位置を変更するにはどうすればよいですか?
ここに私が持っているもののスクリーンショットがあります。一度それを見ると、私の意味を知ることができます。おかげ My App http://img188.imageshack.us/img188/9926/chucknhelp.tif
あなたはUITableViewCell
をサブクラス化せずにそれを行うことができます。
tableView:cellForRowAtIndexPath:
の方法では、基本UITableViewCell
を作成し、このセルに含まれているUILabel
のプロパティを変更します。セルのテキストをより多く表示できるように、行の最大数を変更します。
残念ながら、セルのラベルにはプロパティでアクセスできないため、subviews
プロパティでセルのラベルを取得する必要があります。
もちろん、実装の詳細はUITableViewCell
であるため、SDKの将来のリリースでは壊れる可能性があります。注意して使用してください。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"YourCellId"];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"YourCellId"] autorelease];
cell.font = [UIFont systemFontOfSize:16];
UILabel* cellLabel = [cell.contentView.subviews objectAtIndex:0];
[cellLabel setNumberOfLines:3];
}
cell.text = @"Your text";
return cell;
}
アップデート:ここで
は一例であり
テキストに合わせて行の高さを設定するには、次の操作を実行できます。
セルを設定し1テキストに合わせて高さ。
CGSize textSize = [text sizeWithFont:font
constrainedToSize:CGSizeMake(313, 1000)
lineBreakMode:UILineBreakModeWordWrap];
cell.frame = CGRectMake(0.0f, 0.0f, 320.0, textSize.height);
2.戻りtableView:heightForRowAtIndexPath:
方法でセルの高さ:
あなたはこのようなものが必要。このような例
:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [self tableView:(UITableView*)self.view cellForRowAtIndexPath:indexPath];
CGRect cellFrame = cell.frame;
return cellFrame.size.height;
}
サブクラスUITableViewCell
、およびサブクラスのloadView
方法では、そのcontentView
内UILabelを作成します。このラベルを適切な折り返しと位置を持つように設定します。
私はこの方法でそれを指定することはできますか? - (UITableViewCellの*)tableViewCell:(のUITableView *)のtableView cellForRowAtIndexPath:(NSIndexPath *)indexPath –
私はテキストサイズを変更し、それはあなたがその方法でそれをすべて指定することはできません –
を働いたことがあるので。表示したいテキストの長さに応じて、各セルの高さを変更する必要があります。また、UILabelが表示できる最大行数を1より大きい数値に設定する必要があります。 – mmc
アダムは正しいです。もう少し詳しく(雷を速くスクロールする方法と同様に)、atebits.comでUILabelのアプローチを完全にバイパスするこのエントリをチェックすることができます。
Loren Brichter's UITableViewCell subclassing example
また、それはカスタムTableViewsを構築するため、複雑さを増す中で、5種類の例が含まれていdeveloper.apple.comからTableViewSuiteの例で見ることができます。最後の例は、atebits.comのチュートリアルと構造的に非常に似ています。
スタンフォードiPhoneコースの講義8は、ScrollとTableViewsについても、UITableViewCellをサブクラス化するいくつかの例があります。
ありがとう!しかし、私のawakeFromNibでは、私はこのコードを持っています "self.jokeTableView.rowHeight = 70.0;" どのようにテキストが収まる必要があるかによってrowHeightが変わるようにするにはどうすればよいですか? –
私は私の答えでこれを行う方法の例を追加しました。それが役に立てば幸い。 – henning77