如何将故事板中的子视图添加到swift 4中代码中的另一个视图?

时间:2018-01-10 08:46:44

标签: ios swift uiview swift4 subviews

我已经在故事板中创建了一个视图,我想将此视图添加到故事板中没有的另一个视图中,并且它已使用代码创建     这是我的代码:

@IBOutlet weak var sideBarView: UIView!
var sideBarViews = UIView()
override func viewDidLoad() 
{
     super.viewDidLoad()
     self.sideBarViews.frame = CGRect(x:UIScreen.main.bounds.width  , y: 0, width: UIScreen.main.bounds.width / 2, height: UIScreen.main.bounds.height)
     self.sideBarViews.backgroundColor = UIColor.init(red: 251/255, green: 251/255, blue: 251/255, alpha: 1.0)
     UIApplication.shared.keyWindow!.addSubview(self.sideBarViews)
     UIApplication.shared.keyWindow!.bringSubview(toFront: self.sideBarViews)
     self.view.bringSubview(toFront: self.sideBarViews)
}
@IBAction func sideBarMenu(_ sender: UIBarButtonItem)
{
    UIView.animate(withDuration: 0.3, animations:
    {
      UIApplication.shared.keyWindow!.addSubview(self.sideBarViews)
      UIApplication.shared.keyWindow!.bringSubview(toFront: self.sideBarViews)
      self.view.bringSubview(toFront: self.sideBarViews)
      self.sideBarViews.frame = CGRect(x:UIScreen.main.bounds.width / 2 , y: 0, width: UIScreen.main.bounds.width / 2, height: UIScreen.main.bounds.height)
      self.view.addSubview(self.sideBarView)
      UIApplication.shared.keyWindow!.addSubview(self.sideBarView)
      UIApplication.shared.keyWindow!.bringSubview(toFront: self.sideBarView)
      self.view.bringSubview(toFront: self.sideBarView)
      self.view.layoutIfNeeded()
    })
}

1 个答案:

答案 0 :(得分:1)

UIViewController内的Storyboard中创建的UI组件的事情是它们不可重用且不可子类化。此外,特定故事板中的UIViewControllers不能被子类化,也可以在以后作为其他类重用。

我建议您尝试使用专用的.xib子类创建UIView文件,以便随时重复使用。

这是一个很好的教程 - https://medium.com/@brianclouser/swift-3-creating-a-custom-view-from-a-xib-ecdfe5b3a960