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
}
}
私が言ったように、私はiPhoneと一緒に来るSMSアプリケーションのものに似た振る舞いをしたい。テキストを折り返す必要があるときは、コンポーネント全体が成長する必要があります(UIImageのstretchableImageメッセージを使用しているイメージを含む)。 –
それは良いですか? – Amagrammer
コードについて何か奇妙です。最初に、 "textSize"はありませんが、 "testSize"を意味するかもしれません。 2番目に、最も奇妙なのは、 "requiredSize.height> testSize.height"です。これは、testSizeの高さがNSIntegerMaxであるため、常にfalseを返すでしょう(初期化された2行で、決して変更されません)。 何か不足していますか? –