• iOS 11开发教程(十四)iOS11应用代码添加视图


    iOS 11开发教程(十四)iOS11应用代码添加视图

    如果开发者想要使用代码为主视图添加视图,该怎么办呢。以下将为开发者解决这一问题。要使用代码为主视图添加视图需要实现3个步骤。

    (1)实例化视图对象

    每一个视图都是一个特定的类。在Swift中,经常会说,类是一个抽象的概念,而非具体的事物,所以要将类进行实例化。实例化一个视图对象的具体语法如下:

    let/var 对象名=视图类()

    以我们接触的第一个视图View为例,它的实例化对象如下:

    let newView=UIView()

    其中,UIView是空白视图的类,newView是UIView类实例化出来的一个对象。

    (2)设置视图的位置和大小

    每一个视图都是一个区域,所以需要为此区域设置位置和大小。设置位置和大小的属性为frame,其语法形式如下:

    对象名.frame=CGRect(x ,y ,width,height)

    其中,x和y表示视图在主视图中的位置,width和height表示视图的大小。以下为实例化的对象newView设置位置和大小:

    newView.frame=CGRect(x: 67, y: 264, 240, height: 128)

    其中,67和264表示此视图的主视图中的位置,240和128表示此视图的大小。

    注意:步骤1和步骤2也可以进行合并。例如,以下的代码是将UIView类的实例化对象和设置位置大小进行了合并:

    let newView=UIView(frame: CGRect(x: 67, y: 264, 240, height: 128))

    (3)将视图添加到当前的视图中

    最后,也是最为关键的一步,就是将实例化的对象添加到主视图中。这样才可以进行显示。此时需要使用到AddSubview()方法,其语法形式如下:

    this.view.addSubview (视图对象名)

    以下将实例化的对象newView添加到当前的主视图中,代码如下:

    self.view.addSubview(newView)

    【示例1-2】以下将使用代码为主视图添加一个View空白视图。代码如下:

    import UIKit

    class ViewController: UIViewController {

        override func viewDidLoad() {

            super.viewDidLoad()

            // Do any additional setup after loading the view, typically from a nib.

            let newView=UIView(frame: CGRect(x: 67, y: 264, 240, height: 128))

            self.view.addSubview(newView)

        }

    ……

    }

    此时运行程序,会看到如图1.50所示的效果。在此运行效果中也是看不到添加的视图的。这是因为添加的视图默认是白色的背景,如果想要看到视图,需要设置它的背景。例如以下的代码,将背景颜色设置为了灰色:

    newView.backgroundColor=UIColor.gray

    此时运行程序,会看到如图1.51所示的效果。

     

    图1.50  运行效果                                   图1.51  运行效果

  • 相关阅读:
    牛客网-练习题
    牛客网-趋势科技-2020届校园招聘上机考试-1
    976. Largest Perimeter Triangle--Easy
    812. Largest Triangle Area--Easy
    123. Best Time to Buy and Sell Stock III--Hard
    1131. Maximum of Absolute Value Expression--Medium
    1103. Distribute Candies to People--Easy
    满足高并发的I/O Reactor线程模型 (附图,附代码)
    最简洁易懂的方式介绍I/O模型
    从鸿蒙OS的特性看华为应对封锁的策略
  • 原文地址:https://www.cnblogs.com/daxueba-ITdaren/p/7883301.html
Copyright © 2020-2023  润新知