Обтягивающее слово текстовое поле с фоновым изображением на 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 предназначен для Mac, а не для iPhone.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top