2015-09-05 139 views
0

我开始使用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"/> 

更新 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)[I在故事板改变了尺寸],但该新尺寸是293它没有保持固定的宽度。这就是为什么我开始研究帧尺寸的原因。

+0

我有另一个行为正确(IMO),但具有相同的设置(不明确和错位)的textview。鉴于您认为我的约束是不正确的,我如何确定哪一个给出了故事板上没有错误的迹象。 – PatriciaW

+0

上面的评论指的是我与马特进行的扩展讨论。他表示我的问题是由不正确的约束造成的。过了一段时间,我找不到任何约束问题。由于这种差异,他似乎删除了他的评论。 – PatriciaW

回答

0

问题自行解决。我决定添加一个高度约束来规避这个问题。然后我发布了另一个问题,用textview宽度来概述我的问题。这样做后,我删除了高度限制,宽度现在是正确的。我不知道为什么它开始工作,因为新的约束是我开始的。但也许他们不知何故被损坏了。