2011-09-16 16 views
1

指定されたテキストに必要なラベルの高さを得るには、次の方法を使用しています。iPhone 4.0とシミュレータで表示されるラベルの高さの差

//Obtain the label height required for the text 
CGFloat answerLabelHeight = [CustomCell getHeightOfLabel:answer_text ofFontSize:ANSWER_FONT_SIZE withConstraint: ANSWER_CONSTRAINT]; 

//Retrieve the label from cell contentview 
UILabel *thisAnswerLabel = (UILabel*)[self.contentView viewWithTag:ANSWERLABEL_TAG]; 

//Set the frame of the label depending on the label height obtained above 
[thisAnswerLabel setFrame:CGRectMake(CELL_TEXT_LEFT_MARGIN + CELL_AVATAR_WIDTH + CELL_SPACING, currentYAxisValue, CELL_ANSWER_WIDTH, answerLabelHeight)]; 


//Method to obtain label height 
+ (CGFloat) getHeightOfLabel:(NSString *)text ofFontSize:(CGFloat)fontSize withConstraint:(CGSize)constraint 
{ 
    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:fontSize] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; 

    return size.height; 
} 

奇妙なことに、返されたラベルの高さが正確でない、つまりテキストの上下にスペースが残っていることがわかりました(下記参照)。 iPhone上での検索結果をテキストの上、下(結果が正確である、すなわち、余分なパディング

enter image description here

:また、結果は、iPhone 4のデバイスのために返され、シミュレータ上のシミュレータが異なる

結果4:(結果は異なると少し

enter image description here

すなわち、余分なパディングが上で見ているオフとテキストの下にあります3210

1)iphoneデバイスとシミュレータの結果に違いがあるのはなぜですか? 2)iPhone 4シナリオの余分な埋め込みを削除するにはどうすればよいですか?

EDIT: 追加のパディングは、特定のシナリオでのみ発生し、段落の最後の単語が境界の右側に近い場合のように見えます。そうでなければ返される高さは大丈夫です。これがiphoneの網膜ディスプレイに起因する場合、どうすればこの不一致を克服できますか?

答えて

1

@ Zhen私はあなたがiPhone 4がratinaの表示を持っている間ratina displyのためのシミュレータを使用していないと思います。

余分な埋め込みを削除するには、高さを低くして配置を中央に設定します。

+0

面白いことに、いくつかのケースでは問題はありませんが、他にも起こります。とにかく網膜ディスプレイの問題を克服するには? – Zhen

+0

コス私はこれが起こるときには、私は高さを調整するときを知りません – Zhen

関連する問題