Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 使用故事板中的视图将其框架用于另一个按编程方式设置的视图_Swift_Xcode_Uiview_Frame - Fatal编程技术网

Swift 使用故事板中的视图将其框架用于另一个按编程方式设置的视图

Swift 使用故事板中的视图将其框架用于另一个按编程方式设置的视图,swift,xcode,uiview,frame,Swift,Xcode,Uiview,Frame,我有一个视图,我必须通过编程设置,我把它命名为progView。 我想在故事板中直观地定义它的框架。我想到了一个解决方法-我将使用一个普通视图,我将其命名为storyView,我将其连接到ViewController并执行如下操作: @IBOutlet weak var storyView: UIView! 在viewDidLoad中: let progView = ProgView(frame: storyView.frame) 这会导致progView与storyView不匹配。 我也试

我有一个视图,我必须通过编程设置,我把它命名为progView。 我想在故事板中直观地定义它的框架。我想到了一个解决方法-我将使用一个普通视图,我将其命名为storyView,我将其连接到ViewController并执行如下操作:

@IBOutlet weak var storyView: UIView!
在viewDidLoad中:

let progView = ProgView(frame: storyView.frame)
这会导致progView与storyView不匹配。 我也试过这个:

let progView = ProgView(frame: storyView.bounds)
但结果更糟。 有没有一种方法可以使一个视图与另一个视图完全相同


如果我的问题遗漏了信息,请在评论中说明,我会尽力添加。

您应该尝试调用
let progView=progView(frame:storyView.frame)
inside
viewdilayoutsubviews
,因为inside
viewdiload
视图尚未布局

private var didLayoutSubview = false //to call this once, because theoretically viewDidLayoutSubviews can be called multiple times
override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    if !self.didLayoutSubiviews {
        self.didLayoutSubiviews = true
        let progView = ProgView(frame: storyView.frame)
    }
}