2015-11-30 4 views
0

Я знаю, что люди задавали этот вопрос раньше, но, глядя на их код и т. Д., Он немного отличается от моего.Изменение размера проблемы UITextView

Я пытаюсь изменить размер моего UITextView в зависимости от размера содержимого. На IPhone 6 и 6 Plus код работает нормально.

Однако на iPhone 4 и 5 в портретном режиме он отсекает часть содержимого, но в ландшафте он появляется снова.

это код, который я добавил на высоту, чтобы изменить размер:

let fixedWidth = DetailsViewer.frame.size.width 
    DetailsViewer.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) 
    let newSize = DetailsViewer.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) 
    var newFrame = DetailsViewer.frame 
    newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height) 
    DetailsViewer.frame = newFrame 
    heightConstraint.constant = newFrame.height 

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

ответ

0

Я знаю, что это работает с UIWebViews со следующим кодом.

func webViewDidFinishLoad(webView: UIWebView) { 
    webView.frame.size.height = 1 
    webView.frame.size = webView.sizeThatFits(CGSizeZero) 
} 

эквивалент будет следующим: (изменение размеров редактирование закончилась, вы можете использовать любой другой метод тоже в зависимости от того, что вы хотите сделать)

func textViewDidBeginEditing(textView: UITextView) -> Bool { 
    textView.frame.size.height = 1 
    textView.frame.size = textView.sizeThatFits(CGSizeZero) 
} 

Не забудьте импортировать и установить делегат перед:

class myClass: UIViewController, UITextViewDelegate { 
    /*your code*/ 

    myTextView.delegate = self 
} 

Надеется, что это помогает :)

0

Я нашел решение. мне нужно, чтобы переместить весь блок кода в viewDidAppear вместо того, чтобы на него viewWillAppear

пусть моноширинный = DetailsViewer.frame.size.width DetailsViewer.sizeThatFits (CGSize (ширина: моноширинный, высота: CGFloat.max)) let newSize = DetailsViewer.sizeThatFits (CGSize (ширина: fixedWidth, height: CGFloat.max)) var newFrame = DetailsViewer.frame newFrame.size = CGSize (ширина: max (newSize.width, fixedWidth), height: newSize. высота) DetailsViewer.frame = новыйFrame высотаConstraint.constant = новыйFrame.height

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