简友广场ios swift学习笔记

swift从零开始--2048游戏显示并更新视图内容

2020-05-07  本文已影响0人  迷夏湖

1. 前言

刚开始学习swift,有点无从下手的感觉,如何将自己想看的东西显示在手机上?如何改变显示的内容?带着这两个最初的疑问,打开XCode,尝试一把。

2. 显示视图

由于以后想结合SpriteKit来做些项目,所以建项目时选择了SpriteKit。默认会生成一些文件,GameViewController: UIViewController是视图控制层,可以在里面添加视图,响应事件。
新建了一个swift文件MainScene继承UIView,添加了一个UILabel的成员变量用于显示文字,init中做了一些初始化操作,指定label的大小,位置,颜色,text等信息,然后将label加入到view中。

class MainScene : UIView {
    var label : UILabel!
    init(x: CGFloat, y: CGFloat, value: Int) {
        let wid:CGFloat = 40
        label = UILabel(frame: CGRect(x: 0, y: 0, width: wid, height: wid))
        label.textAlignment = .center
        label.minimumScaleFactor = 0.5
        label.font = UIFont(name: "HelveticaNeue-Bold", size: 15)
        super.init(frame: CGRect(x: x, y: y, width: wid, height: wid))
        self.addSubview(label)
        label.text = "test"
    }

在ViewController中增加一个MainScene的成员变量,viewDidLoad方法中加入到其view中。这样就能显示这个label信息了。

class GameViewController: UIViewController {
    var mainScene = MainScene(x: 50, y: 50, value: 8)
    var count = 1;
    override func viewDidLoad() {
        super.viewDidLoad()
        //view.backgroundColor = UIColor.black
        view.addSubview(mainScene)
    }

3 更新视图内容

想通过事件触发label的文字更新,在Controller中增加点击事件的响应,只需要在点击事件中将将label.text设置为count自增值, 就会点击时随着变化啦。

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        NSLog("test start")
        count = count + 1
        mainScene.label.text = "\(count)"
    }

4 END

知道如何显示并更新后,后面就可以加入更丰富的view,以及响应不同的事件达到自己想要的效果啦。

上一篇 下一篇

猜你喜欢

热点阅读