Я начал использовать 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 Это то, что сцена выглядит следующим образом:
Я также изменил настройки кадров в раскадровке и это не имело никакого значения. Но я вижу новые настройки фрейма, когда я отлаживаю код, поэтому я разместил этот вопрос.
Обновления Код, который вызывает проблему является:
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. Он не сохранил фиксированную ширину. Вот почему я начал изучать размер рамки.
У меня есть другой текст, который ведет себя корректно (IMO), но имеет те же настройки (неоднозначные и неуместные). Учитывая, что вы считаете, что мои ограничения неверны, как я могу определить, какой из них указывает на отсутствие ошибки в раскадровке. – PatriciaW
Вышеупомянутый комментарий относится к расширенной дискуссии, которую я имел с Мэттом. Он заявил, что моя проблема вызвана неправильными ограничениями. Через некоторое время я не смог найти никаких проблем с ограничениями. Похоже, что он удалил свои комментарии в результате этой разницы. – PatriciaW