2013-10-02 7 views
1

Это должно быть так просто, но по какой-то причине это не работает для меня. Я хочу изменить размер текстового поля и, в идеале, немного заполнить внизу. Пока я соглашусь на правильное изменение размера.Изменение размера UITextView - высота не регулируется

Установка

Один взгляд на моем раскадровки

Интерфейс

@property (weak, nonatomic) IBOutlet UITextView *messageTextBox; 

Реализация

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    _messageTextBox.text = _message.body; 
    [_messageTextBox sizeToFit]; 
} 

Я пробовал несколько различных решений, включая изменение высоты рамки и других предложений пользователя здесь ...

Это использование ios7 и xcode 5, но я не понимаю, почему возникла проблема с таким основная функция.

Чтобы добавить к моей путанице, я зарегистрировал высоту кадра и содержимое после sizeToFit. Мои результаты:

2013-10-02 18:40:20.803 narg[21467:a0b] H of the frame: 618.000000 
2013-10-02 18:40:20.804 narg[21467:a0b] W of the frame: 469.000000 
2013-10-02 18:40:20.804 narg[21467:a0b] Reported H of contentSize property on object 42.000000 

Так рама четко знает правильную высоту, но на дисплее весь текст обрезается и в поле не регулирует размер.

ответ

4

Здесь был ответ на мой вопрос. В какой-то момент я просмотрел Autolayout на мой взгляд. Это фактически заблокировало представление и не позволило мне настроить размер рамки.

Если вы видите подобный вопрос, что кадр не изменение размера, попробуйте следующее:

  • Перейти к интерфейсу строителя и открыть вид
  • Нажмите на файл инспектор
  • Deselect авто-макет ,

Это разрешило мою проблему.

+1

Это настолько невероятно полезно. Я потратил несколько часов на это. Это работало. Спасибо. –

+0

и теперь для программной альтернативы ... – CQM

0

Посмотрите here, чтобы рассчитать хороший кадр UITextView в зависимости от вашего текста _message.body. Вы можете добавить промежуток, чтобы иметь нижнюю прокладку следующим образом:

- (CGFloat)textViewHeightForAttributedText:(NSAttributedString*)text andWidth:(CGFloat)width 
{ 
    UITextView *calculationView = [[UITextView alloc] init]; 
    [calculationView setAttributedText:text]; 
    CGSize size = [calculationView sizeThatFits:CGSizeMake(width, FLT_MAX)]; 
    return size.height + 50; // 5O is your gap for example 
} 
+0

Думаю, я пробовал это, но попробую еще раз. поэтому я бы назвал это просто, чтобы получить высоту? В настоящее время мой рост точно возвращается. Но кадр не регулируется ... – mday

+0

что-то вроде этого должно работать, так как это то, что мы использовали для проектов. – timpone

+0

Используйте его для расчета новой высоты и изменения рамки вашего текстового вида. –

Смежные вопросы