【发布时间】:2015-11-10 18:02:43
【问题描述】:
我正在尝试在 Swift 中创建一个可重用的 UIView,我可以将它插入到我的 Storyboard 视图控制器中。我现在的关键问题是可重用的 UIView“小部件”不完全适合故事板中的 UIView 框。我跟着this tutorial 设置了可重用的 UIView 小部件
-
创建了一个 UIView 的子类和一个对应的 .xib -- 并将它们连接起来:
import UIKit class MyWidgetView: UIView { @IBOutlet var view: UIView!; required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder); NSBundle.mainBundle().loadNibNamed("MyWidgetView", owner: self, options: nil); self.addSubview(self.view); } } 在上面代码对应的接口文件XIB中,我使用了Simulated Metrics下的UIView with Freeform size,View mode下使用Scale to Fill。
在主情节提要中,我添加了一个 UIView 块(相同的矩形形状)并将 Class 更改为 MyWidgetView
虽然我在 XIB 和主情节提要中都使用了布局约束,但我在 XIB 中创建的组件在实际应用程序中看起来被压扁了。
查看屏幕截图。粉红色的部分不应该出现,因为它只是主故事板上的 UIVIew 的颜色,我添加它以测试大小。该 UIView 实际上是 MyWidgetView (在我在步骤 3 中更改了类之后。所以理论上,由于 MyWidgetView == 主情节提要上的 UIView,并且 UIView 具有使其在超级视图中成为矩形的约束,那么为什么我的小部件会被压扁?下面的蓝色部分应该一直向右延伸。
【问题讨论】:
标签: swift uiview autolayout