iPhoneで画像の背景を持つワードラッピングテキストフィールドですか?

StackOverflow https://stackoverflow.com/questions/1216663

  •  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用です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top