2015-09-05 2 views
0

Я начал использовать Xcode с раскадными стенами и обычно не изменяю атрибуты объектов с помощью swift. Тем не менее, у меня есть два объекта UITextView, определенные в моей раскадровке, и оба они определены в раскадровке шириной 316 и высотой 36. Я пытаюсь изменить размер высоты, чтобы содержать разные текстовые строки, но у меня возникают проблемы с различной шириной текстовых просмотров при во время выполнения. Когда я изучил код раскадровки, я обнаружил, что кадры разные. Один из них - w 271 и h 117, а другой - w 240 и h 128 ч. (Их настройки x и y также различны.)Xcode 6 Storyboard устанавливает неправильный размер кадра для UITextView

Может кто-нибудь объяснить, как я могу исправить это в раскадровке? Как он устанавливается в первую очередь? Должен ли я изменить значения раскадровки вручную? Ниже приведены примеры:

<textView autoresizesSubviews="NO" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="scaleAspectFit" ambiguous="YES" misplaced="YES" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" delaysContentTouches="NO" canCancelContentTouches="NO" bouncesZoom="NO" editable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lje-0i-uhe" userLabel="menu textview"> 
<rect key="frame" x="25" y="20" width="271" height="117"/> 


<textView autoresizesSubviews="NO" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="scaleAspectFit" ambiguous="YES" misplaced="YES" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" delaysContentTouches="NO" canCancelContentTouches="NO" bouncesZoom="NO" editable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0Lx-zf-Lh8" userLabel="Kits textview"> 
<rect key="frame" x="0.0" y="0.0" width="240" height="128"/> 

Update enter image description here Это то, что сцена выглядит следующим образом:

Я также изменил настройки кадров в раскадровке и это не имело никакого значения. Но я вижу новые настройки фрейма, когда я отлаживаю код, поэтому я разместил этот вопрос.

Обновления Код, который вызывает проблему является:

let fixedWidth = textView.frame.size.width 
    textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) 
    let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) 
    var newFrame = textView.frame 
    newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height) 
    textView.frame = newFrame; 
    textView.scrollEnabled = false 

Когда я пауза кода моноширинного = 300 (высота 200) [Я изменил размер в раскадровке], но NewSize 293 пути 169. Он не сохранил фиксированную ширину. Вот почему я начал изучать размер рамки.

+0

У меня есть другой текст, который ведет себя корректно (IMO), но имеет те же настройки (неоднозначные и неуместные). Учитывая, что вы считаете, что мои ограничения неверны, как я могу определить, какой из них указывает на отсутствие ошибки в раскадровке. – PatriciaW

+0

Вышеупомянутый комментарий относится к расширенной дискуссии, которую я имел с Мэттом. Он заявил, что моя проблема вызвана неправильными ограничениями. Через некоторое время я не смог найти никаких проблем с ограничениями. Похоже, что он удалил свои комментарии в результате этой разницы. – PatriciaW

ответ

0

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