iPhoneで画像の背景を持つワードラッピングテキストフィールドですか?
-
06-07-2019 - |
質問
UIImageの背景を持ち、ワードラップを行うテキストフィールドの作成方法を知っている人はいますか?
UITextFieldではワードラッピングが利用できないようですが、UITextViewでは背景画像が利用できません!また、コントロールのサイズを変更するか、少なくとも行数が変更されたことを警告して、デリゲートがそのサイズを変更できるようにする必要があります。
このような制御の例は、SMSアプリケーションのメッセージの入力フィールドです。
編集:コードは、編集中のテキストを常に表示するテキストフィールドも取得する必要があります。どうやら、編集中にUITextViewのサイズが変更されると、どういうわけか現在のテキストにフォーカスが失われます。
ありがとうございます! Aviad。
解決
UITextFieldは単一行のテキストのみをサポートするため、UITextFieldではワードラップは使用できません。
UITextViewを使用します。 textView.backgroundColor = [UIColor clearColor]を作成します。最初にUIImageを追加してから、その上にUITextViewを追加します。サイズが正しいことを確認してください。問題ないはずです。
UITextViewのサイズを変更するには、UITextViewDelegateで次のようにします。
- (void)textViewDidChange:(UITextView *)textView
{
NSString *s = textView.text;
CGSize testSize = CGSizeMake(textView.frame.size.width, NSIntegerMax);
CGSize neededSize = [s sizeWithFont: textView.font constrainedToSize: testSize lineBreakMode: UILineBreakModeWordWrap]; // or UILineBreakModeCharacterWrap?
if (neededSize.height > testSize.height)
{
// grow textView
textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, neededSize.width, neededSize.height);
// then adjust the image size -- something like this
imageView.frame = textView.frame
}
}
他のヒント
最終的には、独自のコードを作成しましたが、多くの回避策(たとえば、すべてのテキストを削除するときにサイズを変更するなど、フォーカスを変更する)である程度機能しました。興味がある人はコードを投稿します。
他のニュースでは、今日、ここで別の質問でと呼ばれるものを見ました。 IFVerticallyExpandingTextField
。名前は有望でした。コードはここにありますので、見てみましょう。同様の問題を抱えている人は、これも見たいかもしれません。
私の間違い、私はそれを十分に注意深く読みませんでした: IFVerticallyExpandingTextField
はiPhoneではなくMac用です。