2013-06-12 1 views
0

Как изменить размер текстового представления, чтобы он расширялся при отображении на новых 4-дюймовых экранах, что он не короче? Я использую AutoLayout. Кроме того, я подсчитал, что, поскольку клавиатура iOS занимает 216 точек на обоих устройствах, а так как панель навигации занимает 44 точки на обоих устройствах, то оставшееся представление будет 200 точек на экране 320x460. Но как мне установить это отношение к экрану iPhone 5? Любая помощь будет оценена по достоинству. Я представил скриншот, чтобы проиллюстрировать, что я имею в виду, чтобы лучше понять мою проблему.Изменить размер текста для отображения 4 "

Нормальный экран (работает отлично!):

iPhone 5 экран (не так велик!):

+2

экран iPhone 5 является 4" – Kevin

+0

@Kevin упс! Перепутал имя и экран ха-ха. Изменено название. – Carpetfizz

ответ

0

Это довольно просто высота высчитывает из текстового поля как этот

CGFloat TextFieldHeight = self.view.frame.size.height - keyboardHeight- statusbarheight - navigationBarHeight; 

Затем присвойте эту высоту своему текстовому полю.

CGRect TextFieldNewFrame = textField.frame; 
TextFieldNewFrame.size,height = TextFieldHeight; 
textField.frame = TextFieldNewFrame; 
+0

Спасибо! Я сделал это, но как я на самом деле присвоить его своим свойствам TextView , поскольку они являются readonly? Я использую '[[self htmlText] frame] .size.height = textFieldHeight;' – Carpetfizz

+0

textView frame - это не свойство readonly. Вы можете создать CGRect, а затем назначить кадру textview. См. мой отредактированный ответ –

0

Попробуйте сделать так:

self.view.autoresizesSubviews = YES; self.textView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

+0

Спасибо, но это не сработало. – Carpetfizz

0

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

CGRect largeScreen = CGRectMake(0, 1, 640, 290); 
    CGRect screenBounds = [[UIScreen mainScreen]bounds]; 
    if (screenBounds.size.height==568) 
    { 
     [self.htmlText setTranslatesAutoresizingMaskIntoConstraints:YES]; 
     htmlText.frame = largeScreen; 

    }