我开始使用Xcode与故事板并且通常不会使用swift更改对象的属性。但是,我的故事板中定义了两个UITextView对象,并且这两个对象都在宽度为316和高度为36的情节提要中定义。我试图调整高度以包含不同的文本字符串,但是我在使用不同文本宽度时出现问题运行。当我检查故事板代码时,我发现框架是不同的。一个是w 271和h 117,而另一个是w 240和h 128 h。 (他们的x和y设置也不同。)Xcode 6故事板为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"/>
我也是在故事板更改相框设置,并没有什么区别。但是当我调试代码时,我可以看到新的框架设置,这就是我发布此问题的原因。
更新 引起该问题的代码是:
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)[I在故事板改变了尺寸],但该新尺寸是293它没有保持固定的宽度。这就是为什么我开始研究帧尺寸的原因。
我有另一个行为正确(IMO),但具有相同的设置(不明确和错位)的textview。鉴于您认为我的约束是不正确的,我如何确定哪一个给出了故事板上没有错误的迹象。 – PatriciaW
上面的评论指的是我与马特进行的扩展讨论。他表示我的问题是由不正确的约束造成的。过了一段时间,我找不到任何约束问题。由于这种差异,他似乎删除了他的评论。 – PatriciaW