我开始在故事板中使用Xcode,并且通常不使用swift更改对象的属性。但是,我在故事板中定义了两个UITextView对象,两个都在故事板中定义,宽度为316,高度为36.我试图调整高度以包含不同的文本字符串,但是我遇到了文本视图的不同宽度问题运行。当我检查故事板代码时,我发现框架是不同的。一个是w 271和h 117,而另一个是w 240和h 128 h。 (他们的x和y设置也不同。)
任何人都可以解释我如何在故事板中解决这个问题吗?它是如何设置的?我是否必须手动更改故事板值?以下是示例:
<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"/>
我还改变了故事板中的框架设置,但没有任何区别。但是当我调试代码时,我可以看到新的帧设置,这就是我发布这个问题的原因。
更新 导致问题的代码是:
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
当我暂停代码时,fixedWidth = 300(高度200)[我改变了故事板中的大小]但是newSize是293乘169.它没有保持固定的宽度。这就是我开始研究帧大小的原因。
答案 0 :(得分:0)
问题解决了。我决定添加一个高度约束来规避这个问题。然后我发布了另一个问题,概述了textview宽度的问题。在这之后我删除了高度约束,现在宽度是正确的。我不确定为什么它开始起作用,因为新约束是我开始的。但也许他们以某种方式腐败了。