Изменение размеров UITextView

Это потому, что вы делаете пост Ajax. Вы можете вернуть URL в результате и использовать этот URL для перенаправления.

26
задан bobobobo 24 November 2009 в 03:42
поделиться

2 ответа

Проблема вашего подхода в том, что вы предполагаете, что InkCanvas создает StrokeCollection . Это не так - он просто добавляет и удаляет элементы из него. И если коллекция недоступна (т. Е. Имеет значение null ), привязка не будет выполнена, и InkCanvas не будет делать что-либо с ней. Итак:

  1. Вам нужно создать одну StrokeCollection
  2. . Нужно предположить, что содержимое коллекции изменится,

    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(5, 30, 100, size.height + 10)];
    
29
ответ дан 28 November 2019 в 06:09
поделиться

На опубликован ответ. Как изменить размер UITextView в соответствии с его содержимым?

CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;

или лучше ( с учетом contentInset благодаря комментарию kpower)

CGRect frame = _textView.frame;
UIEdgeInsets inset = textView.contentInset;
frame.size.height = _textView.contentSize.height + inset.top + inset.bottom;
_textView.frame = frame;

примечание: если вы собираетесь ссылаться на свойство объекта много раз (например, frame или contentInset), лучше назначить его локальной переменной, чтобы вы не запускали дополнительный метод вызовы (_textView.frame / [_ textView frame] - это вызовы методов). Если вы вызываете этот код много раз (100000 раз), то это будет заметно медленнее (около дюжины вызовов методов несущественны).

Однако ... если вы хотите сделать это в одной строке без дополнительных переменных, это будет

        _textView.frame = CGRectMake(_textView.frame.origin.x, _textView.frame.origin.y, _textView.frame.size.width, _textView.contentSize.height + _textView.contentInset.top + _textView.contentInset.bottom);

за счет 5 дополнительных вызовов методов.

58
ответ дан 28 November 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: