如何在swift中添加静态底视图

时间:2016-05-20 11:05:25

标签: ios swift uiview uiviewcontroller

我想在tuple = let range = float 0.0 500.0 in flatMap (\max -> (max, float 0.0 max)) range 的底部添加静态UIView。这是一个用swift编写的故事板应用程序。在我UIViewController我做了类似的事。

viewDidLoad()

但这对我的self.vWindow = UIApplication.sharedApplication().keyWindow let mainBound = CGRectMake(0, self.view.frame.size.height-135, self.view.frame.size.width, 135)//CGSizeMake(UIScreen.mainScreen().bounds.size.width, 135.0) self.vwVideo = UIView.init(frame: mainBound) self.vwVideo.backgroundColor = UIColor.blackColor() self.vWindow.addSubview(self.vwVideo) 没有任何补充。这是为什么?请帮我。 感谢

4 个答案:

答案 0 :(得分:2)

enter image description here

let vWindow = UIApplication.sharedApplication().keyWindow
let mainBound = CGRectMake(0, self.view.frame.size.height-135, self.view.frame.size.width, 135)//CGSizeMake(UIScreen.mainScreen().bounds.size.width, 135.0)
self.vwVideo = UIView.init(frame: mainBound)
self.vwVideo.backgroundColor = UIColor.blackColor()
vWindow!.addSubview(self.vwVideo)
  • 使用此代码,它会在底部的窗口中添加您的视图。

答案 1 :(得分:1)

您不应将视图直接附加到窗口,将其添加到ViewController。

尝试这样的事情:

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.


        // without autolayout

        let header = UIView(frame: CGRectMake(0,0, view.bounds.size.width, 50))
        header.backgroundColor = UIColor.redColor()
        view.addSubview(header)

        // with auto layout
        let footer = UIView()
        footer.backgroundColor = UIColor.blackColor()
        footer.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(footer)


        NSLayoutConstraint(item: footer, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 50).active = true
        NSLayoutConstraint(item: footer, attribute: .Leading, relatedBy: .Equal, toItem: view, attribute: .Leading, multiplier: 1.0, constant: 0).active = true
        NSLayoutConstraint(item: footer, attribute: .Trailing, relatedBy: .Equal, toItem: view, attribute: .Trailing, multiplier: 1.0, constant: 0).active = true
        NSLayoutConstraint(item: footer, attribute: .Bottom, relatedBy: .Equal, toItem: view, attribute: .Bottom, multiplier: 1.0, constant: 0).active = true


    }

这里有两种附加视图的方法,一种是自动布局,一种是固定大小和位置。

如果你想添加复杂的视图,你最好在故事板中创建一个nib .. .a视图,你可以在需要时加载它。

如果你需要在许多地方出现这个视图,你可以看看而不是将它附加到父视图,可能是类似导航控制器或分页视图控制器,但你需要管理什么时候它应该而且不应该是显示。

答案 2 :(得分:0)

我想将您创建的视图添加到window我认为。您需要查看当前内容视图,例如

 self.view.addSubView(self.vwVideo)

你不需要采取窗口和界限,你可以简单地实现它,像

 let bottomView: UIView = UIView(frame: CGRectMake(0, self.view.frame.size.height - 135, self.view.frame.size.width, 135))
 self.view!.addSubview(bottomView)

希望这会有所帮助:)

答案 3 :(得分:0)

使用AutoLayout做得更好。 将您的视图添加到superview

view.addSubview(footerView)

然后使用

禁用将遮罩自动转换为约束

footerView.translatesAutoresizingMaskIntoConstraints = false

然后使用以下代码行添加约束

view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[view]-0-|", options: [], metrics: nil, views: ["view":footerView]))

view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[view(135)]-0-|", options: [], metrics: nil, views: ["view":footerView]))