Swift - 页面元素的绝对定位(水平居中,垂直居中,右上角等等)

1,各类常见位置的定位 html

下面使用按钮演示如何将元件居中(水平居中、垂直居中),以及放置在边角处(左上角,右上角,左下角,右下角)swift

原文:Swift - 页面元素的绝对定位(水平居中,垂直居中,右上角等等)

import UIKit


class ViewController: UIViewController {


    override func viewDidLoad() {

        super.viewDidLoad()


        let btn1 = createButton("左上")

        self.view.addSubview(btn1)

         

        let btn2 = createButton("右上")

        btn2.frame.origin.x = self.view.bounds.width - btn2.frame.width

        self.view.addSubview(btn2)

         

        let btn3 = createButton("左下")

        btn3.frame.origin.y = self.view.bounds.height - btn3.frame.height

        self.view.addSubview(btn3)

         

        let btn4 = createButton("右下")

        btn4.frame.origin = CGPoint(x: self.view.bounds.width - btn4.frame.width,

            y: self.view.bounds.height - btn4.frame.height)

        self.view.addSubview(btn4)

         

        let btn5 = createButton("居中")

        btn5.center = CGPoint(x: self.view.bounds.width / 2,

            y: self.view.bounds.height / 2)

        self.view.addSubview(btn5)

         

        let btn6 = createButton("上中")

        btn6.center.x = self.view.bounds.width / 2

        self.view.addSubview(btn6)

         

        let btn7 = createButton("左中")

        btn7.center.y = self.view.bounds.height / 2

        self.view.addSubview(btn7)

         

        let btn8 = createButton("右中")

        btn8.frame.origin.x = self.view.bounds.width - btn8.frame.width

        btn8.center.y = self.view.bounds.height / 2

        self.view.addSubview(btn8)

         

        let btn9 = createButton("下中")

        btn9.center.x = self.view.bounds.width / 2

        btn9.frame.origin.y = self.view.bounds.height - btn9.frame.height

        self.view.addSubview(btn9)

    }

     

    func createButton(title: String) -> UIButton {

        //建立一个ContactAdd类型的按钮

        let button:UIButton = UIButton(type:.Custom)

        //设置按钮大小

        //button.frame=CGRectMake(0, 0, 80, 50)

        button.frame.size = CGSize(width: 80, height: 50)

        //设置按钮文字

        button.setTitle(title, forState:UIControlState.Normal)

        button.backgroundColor=UIColor.orangeColor()

        return button

    }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

    }

}

 

2,定位从状态栏(statusBar)下方开始 有时咱们放置的页面元素不想与状态栏重合,而是从状态栏下方开始,那么加上状态栏高度便可。ide

原文:Swift - 页面元素的绝对定位(水平居中,垂直居中,右上角等等)

let statusFrame = UIApplication.sharedApplication().statusBarFrame


let btn1 = createButton("左上")

btn1.frame.origin.y = statusFrame.height

self.view.addSubview(btn1)


let btn2 = createButton("右上")

btn2.frame.origin.x = self.view.bounds.width - btn2.frame.width

btn2.frame.origin.y = statusFrame.height

self.view.addSubview(btn2)


let btn6 = createButton("上中")

btn6.center.x = self.view.bounds.width / 2

btn6.frame.origin.y = statusFrame.height

self.view.addSubview(btn6)


3,定位从导航栏(navigationBar)下方开始
一样的,若是页面上有导航栏,而元素又不想被导航栏遮住。那么将其加上导航栏的坐标和高度便可。code

原文:Swift - 页面元素的绝对定位(水平居中,垂直居中,右上角等等)

import UIKit


class ViewController: UIViewController {


    override func viewDidLoad() {

        super.viewDidLoad()


        var marginTop:CGFloat = 0

        if let rect = self.navigationController?.navigationBar.frame {

            marginTop = rect.height + rect.origin.y

        }

         

        let btn1 = createButton("左上")

        btn1.frame.origin.y = marginTop

        self.view.addSubview(btn1)

         

        let btn2 = createButton("右上")

        btn2.frame.origin.x = self.view.bounds.width - btn2.frame.width

        btn2.frame.origin.y = marginTop

        self.view.addSubview(btn2)

         

        let btn6 = createButton("上中")

        btn6.center.x = self.view.bounds.width / 2

        btn6.frame.origin.y = marginTop

        self.view.addSubview(btn6)

         

        let btn3 = createButton("左下")

        btn3.frame.origin.y = self.view.bounds.height - btn3.frame.height

        self.view.addSubview(btn3)

         

        let btn4 = createButton("右下")

        btn4.frame.origin = CGPoint(x: self.view.bounds.width - btn4.frame.width,

            y: self.view.bounds.height - btn4.frame.height)

        self.view.addSubview(btn4)

         

        let btn5 = createButton("居中")

        btn5.center = CGPoint(x: self.view.bounds.width / 2,

            y: (self.view.bounds.height + marginTop) / 2)

        self.view.addSubview(btn5)

         

        let btn7 = createButton("左中")

        btn7.center.y = (self.view.bounds.height + marginTop) / 2

        self.view.addSubview(btn7)

         

        let btn8 = createButton("右中")

        btn8.frame.origin.x = self.view.bounds.width - btn8.frame.width

        btn8.center.y = (self.view.bounds.height + marginTop) / 2

        self.view.addSubview(btn8)

         

        let btn9 = createButton("下中")

        btn9.center.x = self.view.bounds.width / 2

        btn9.frame.origin.y = self.view.bounds.height - btn9.frame.height

        self.view.addSubview(btn9)

    }

     

    func createButton(title: String) -> UIButton {

        //建立一个ContactAdd类型的按钮

        let button:UIButton = UIButton(type:.Custom)

        //设置按钮大小

        //button.frame=CGRectMake(0, 0, 80, 50)

        button.frame.size = CGSize(width: 80, height: 50)

        //设置按钮文字

        button.setTitle(title, forState:UIControlState.Normal)

        button.backgroundColor=UIColor.orangeColor()

        return button

    }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

    }

}
相关文章
相关标签/搜索