swift开发iOS应用之label控件与代码关联

iOS开发入门请参考上一篇iOS开发入门

入门篇中的label控件是最基础的展示控件,本篇介绍该控件和代码关联,在代码中可以动态修改label文本属性。

定义变量

首先打开工程中ViewController.swift文件,初始代码如下:

import UIKit
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

其中方法viewDidLoad方法为程序运行之后会执行的方法。

在定义变量的地方,定义label控件类型的变量,如下:

@IBOutlet weak var label: UILabel!//其中label即是变量名称

定义了UILabel类型的变量,控件类型可以通过如下方式查看:

变量和控件关联

如下图:

可看到关联Outlets项中有个圆圈,鼠标放上去看到一个“+”号,然后按住左键拖动到View中,如下图:

在弹出的选择框中会发现刚刚定义变量label,选择“label”即可,此时就完成了关联。关联之后可看到label控件的关联关系改变,如下图:

注意如果该视图下没有关联关系,表示关联关系没有建立,如果此时去使用label变量,就会报如下错误:

fatal error: unexpectedly found nil while unwrapping an Optional value
2017-10-27 17:48:03.189566+0800 HelloWordApp[4155:455152] fatal error: unexpectedly found nil while unwrapping an Optional value

代码控制控件

完成关联之后,就可以对控件进行动态修改属性了。定义如下方法:

func changeLabel(){
        print("label text before change:" + label.text!)
        label.text = "change"
        print("label text after change:" + label.text!)
    }

该方法在viewDidLoad方法中调用,完整代码如下:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel!

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

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func changeLabel(){
        print("label text before change:" + label.text!)
        label.text = "change"
        print("label text after change:" + label.text!)
    }
}

然后点击运行之后,运行效果如下图:

同时控制台输出内容如下图:

至此控件和代码关联完成。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...