4

UITextView'sここstackoverflowで見つけた複数の回答から収集した情報を使用して、次を使用して高さを正しくサイズ設定できました。

[bookQuoteTxtView sizeToFit];
[bookQuoteTxtView layoutIfNeeded];

UITextViewユーザーが前の画面で選択した可能性のある結果として、明らかに異なる量のテキストが含まれるため、これを行っています。

しかし、私はまだ 1 つの奇妙な問題に直面しています。
に渡されるテキストにUITextView改行が含まれていると、高さ全体が失われるようです。

改行なしのテキストは次のとおりです。

ここに画像の説明を入力

そして、これは同じテキストで、途中でいくつかの改行がスローされています。

ここに画像の説明を入力

ご覧のとおり (それを含むUITextView&に追加したオレンジ色と黄色の背景色の助けを借りScrollViewて)、UITextView's高さのサイズが適切に変更されず、テキストが途切れてしまいます - すべてこれらの改行が原因です。

このすべての動的な高さ変更を行うために使用しているコードは次のUITextViewとおりです。

// BookQuote TextView:
bookQuoteTxtView = [[UITextView alloc] initWithFrame:CGRectMake(5, 30, 310, 80)];
bookQuoteTxtView.backgroundColor = [UIColor orangeColor];
bookQuoteTxtView.font = [UIFont fontWithName:@"Arial" size:15];
bookQuoteTxtView.text = [NSString stringWithFormat:@"%@", bookObject.bookQuote];
[bookQuoteTxtView sizeToFit];
[bookQuoteTxtView layoutIfNeeded];
bookQuoteTxtView.editable = NO;

[scroller addSubview:bookQuoteTxtView];

// Now get the HEIGHT of the Book-Quote TextView:
CGRect textViewFrame = bookQuoteTxtView.frame;
CGFloat textViewFrameHeight = bookQuoteTxtView.contentSize.height;
textViewFrame.size.height = textViewFrameHeight;
bookQuoteTxtView.frame = textViewFrame;

繰り返しますが、これは私のボックスに渡されるほぼすべての文字列に対してほぼ問題なく機能しUITextViewます。したがって、さまざまな長さのさまざまなストリングがすべて機能し、UITextView's高さは自動的に調整され、すべてがクールです。すべてを台無しにする改行だけです。

それを言った...文字列で「\ n」を使用して生成された改行は機能するようですが、Sqlite3データベースから入って読み取られる文字列に埋め込まれた/エンコードされた改行は機能しません。
ですから、そこに問題があるのか​​どうか疑問に思う必要があります。

データベースから日付を読み取るために使用するコードは次のとおりです。

  // Book Quote:
  char *bookQuoteChar = (char *)sqlite3_column_text(statement, 4);
  NSString *bookQuoteString;
  if (bookQuoteChar == NULL) {
      bookQuoteString = @"N/A";
  }
  else {
      bookQuoteString = [[NSString alloc] initWithUTF8String:bookQuoteChar];
  }

データベースが問題を引き起こしているとますます考えていますが、高さの再調整を正しく行っていることを確認するために、全体像をここに全体として提示しています。
何かが飛び出している場合、または修正の提案がある場合はお知らせください。

4

1 に答える 1