2009-06-11 4 views
0

カスタムUITableViewセルに複数行のUILabelを表示する際に問題があります。含まれているUITableViewCellをオーバーフローしている複数行のUILabelを修正するにはどうすればよいですか?

NSString *cellText = [howtoSection objectAtIndex:row]; 
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:15.0]; 
CGSize constraintSize = CGSizeMake(260.0f, MAXFLOAT); 
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; 

return labelSize.height + 20; 

私は現在のセルの高さの両方を計算し、これを使用してい

... ...これは、ラベル自体のためです。

// Calc the height 
NSString *cellText = [howtoSection objectAtIndex:row]; 
CGSize constraintSize = CGSizeMake(260.0f, MAXFLOAT); 
CGSize labelSize = [cellText sizeWithFont:cell.textLabel.font constrainedToSize:constraintSize lineBreakMode:cell.textLabel.lineBreakMode]; 

// Create the label frame 
CGRect newFrame = cell.contentLabel.frame; 
newFrame.size.height = labelSize.height; 
cell.contentLabel.frame = newFrame; 

[cell.contentLabel setText:[howtoSection objectAtIndex:row]]; 

ラベルがセルから押し出され、セルから押し出されていること以外は、すべて計画どおりに動作しています。この明らかなトップマージンでなければ、すべてが収まるでしょう。

はここ

iPhone Rendering Bug

...私はシミュレータで見ているものの画像へのリンクです、ここで任意の助けいただければ幸いです。

答えて

1

表示されているコードにcell.contentLabel.fontと設定されていません。

また、ラベルサイズの計算では、cell.textLabel.fontを使用してサイズを計算しますが、contentLabel変数を使用してレンダリングします。

計算とは異なるフォントでレンダリングすることはできますか?

+0

あなたは正しかったです。私はそれを台無しにしたとは信じられません。助けてくれてありがとう。 –

0

あなたのラベルをcontentViewにどのように追加していますか?高さが正しく計算されるように見えるので、元の位置が間違っているように見えます。新しいフレームの割り当てをコメントアウトすると、正しい位置にラベルが表示されますか?私の賭けはそうではないということです。

+0

私はcontentViewにそれを追加することが何を意味するのか分かりません?カスタムセルはIBで作成され、そのようにラベルを追加しました。 新しいフレームを割り当てる行をコメントアウトした後、私の見ているのは、テキストの正しい位置にある最初の行だけです。 –

+0

ああ、すみません。私は常にカスタムセルをコードで作成しています。自動サイズ変更のアンカーを確認して、下部、上部などにロックされているかどうかを確認します。おそらく、セルの上部にロックされていることを確認します。 – NilObject