Обтягивающее слово текстовое поле с фоновым изображением на iPhone? - PullRequest
1 голос
/ 01 августа 2009

Кто-нибудь знает, как создать текстовое поле с фоном UIImage и переносом слов?

Похоже, что перенос слов не доступен в UITextField, в то время как фоновое изображение недоступно для UITextView! Кроме того, он должен изменить размер элемента управления или, по крайней мере, предупредить, что количество строк изменилось, чтобы делегат мог изменить его размер.

Примером такого управления является поле ввода сообщений в приложении SMS.

Редактировать : код должен также получить текстовое поле, чтобы всегда отображать редактируемый текст. По-видимому, когда UITextView изменяет размер во время редактирования, он каким-то образом теряет фокус на текущий текст.

Спасибо, вперед! Aviad.

Ответы [ 2 ]

2 голосов
/ 01 августа 2009

Перенос слов недоступен в 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 
    }

}
0 голосов
/ 18 августа 2009

В конце концов я написал свой собственный код, который работал до некоторой степени с большим количеством обходных путей (например, изменение фокуса, изменение размера при повторном удалении всего текста и т. Д.). Если кому-то интересно, я выложу код.

В других новостях, только сегодня я увидел в другом вопросе здесь что-то под названием IFVerticallyExpandingTextField. Название было многообещающим, код здесь, и я посмотрю. Любой, у кого похожая проблема, возможно, вы захотите это увидеть.

Моя ошибка, я недостаточно внимательно ее прочитал: IFVerticallyExpandingTextField для Mac, а не для iPhone.

...