2012-01-13 5 views
1

カスタムUITableViewCellを作成しました。UILabelはlabel.numberOfLines = 0を設定してもテキストの最初の行のみを表示します

@interface AnswerCell : UITableViewCell 
@property (nonatomic, retain) IBOutlet UILabel *textLabel; 
@property (nonatomic, retain) IBOutlet UILabel *detailTextLabel; 
@end 

と設定detailTextLabel.numberOfLines = 0;

 cell = [tableView dequeueReusableCellWithIdentifier:kAnswerIdentifier]; 
     if (cell == nil) 
     { 
      [[NSBundle mainBundle] loadNibNamed:@"AnswerCell" owner:self options:nil]; 
      cell=answerCell; 
     }    

     cell.detailTextLabel.text = [self extractText:indexPath forLabelAttribute:kDetailTextLabel]; 
     cell.detailTextLabel.font = [self extractFont:indexPath forLabelAttribute:kDetailTextLabel]; 
     cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap; 
     cell.detailTextLabel.numberOfLines = 0; 

UILabelはテキストの最初の行のみを表示します。しかし、なぜ?

更新:私のdetailTextLabelの高さ= 21.何をする必要がありますか?高さを1000に変更する必要はありますか?

+1

'UILabel'は1行以上表示するのに十分な大きさですか?それはあなたのためにサイズ変更されません。 – mattjgalloway

+0

あなたは正しいです、私の更新された質問をご覧ください。 – Voloda2

+0

人々は私の実際の答えに私を打ち負かすように見える:-)。あなたはそれらの答えですべて設定する必要があります。 – mattjgalloway

答えて

4

ラベルの高さが小さすぎるため、すべてのテキストを表示できないようです。テキストの長さに応じて必要な高さを設定する必要があります。あなたは...あなたのUILabelのサイズを変更する使用して、その高さを計算する必要がAdjust UILabel height depending on the text

+0

はい、今あなたのアップデートが表示されます) – beryllium

+0

ありがとうございました - UICollectionViewでセルのサイズを変更し、タップしたときにフルテキストを表示し、UILabelのフレームをcontentView.boundsにリセットするだけで、 –

1

ため

参照の答え -

[contentsStr sizeWithFont:[UIFont fontWithName:@"Helvetica" size:17.0f] 

をし、それに応じて

を、それのサイズを変更するには、あなたはフォントとそのサイズを変更する必要があります

1

ラベルの幅がある場合は、follを使用して文字列を表示するために必要な文字列のサイズを取得します方法、

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size 

ラベルにサイズを設定します。

Apple documentationが表示されます。

+0

[label sizeToFit]; - sizeWithFontよりもエレガントです – Voloda2

関連する問題