[Day16] swift & kotlin 实作篇!(7) Click Event 绑定

swift

画面都有了! 接下来我们来完成一个小功能吧
首先 我们点选Main.storyboard上方的 +号按钮
此时右边会跑出第二个视窗
这时我们在点选ViewController
我们就可以看到左侧为UI
右侧为程序码的画面搂!
swift 水平至中对齐

接下来我们选取小鸡BB按钮
并按着键盘的control
从小鸡BB按钮上按着
并拖曳往右边画面的程序码内 viewDidLoad() 下方
记住! 要往class里面拉~ 放开後
你就会看到小视窗搂~
此时我们要设定为
Connection 连结到 Action => 代表你要连结一个方法
Name 方法的名称 , 这里我们填入 ggAction
Type是代表执行这个方法的触发对象, 这边选UIButton
下方还有出发的方法
这边的Touch Up Inside 就是如字面上说的
简单明了~ 其他选项就不特别解释了
swift 水平至中对齐

接下来点选Connection连结
神奇的事情发生搂~
ggAction这个方法就出现了
此时用户点选按钮时
就会触发这个方法
swift 水平至中对齐

接下来~我们一样点选BB~ 这个Label
并按着键盘的control
从 选BB 这个Label
拖曳到右侧 Class 内 viewDidLoad() 上方
记住! 要往class里面拉~ 放开後
你就会看到小视窗搂~
此时我们要设定为
Connection 连结到 Outlet => 代表你要连结一个Outlet, 这样会帮你产生参照
Name 为参照的名称: 我们输入ggVoice
swift 水平至中对齐
右边程序码就准备好搂
swift 水平至中对齐
让我们来写个小功能

class ViewController: UIViewController {
    // BB~ Label的UI元件参照
    @IBOutlet weak var ggVoice: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
    // 小鸡BB~ Button 被点击时, 会执行的方法
    @IBAction func ggAction(_ sender: UIButton) {
        ggVoice.text?.append("BB~")
    }
    
}

好搂, 接下来我们点选执行APP
之後去按按小鸡BB的按钮吧
swift 小鸡BB
现在每按一次按钮 就会多一个BB~
我们的第一个小程序完成搂~
是不是觉得没有很困难啊!

Kotlin

Kotlin 绑定按钮点选的方法有好几种
这边我们试试官方教学文件的方法吧
首先我们点选小鸡BB按钮 并给他一个id
我们设定为 ggButton 这样比较好辨识
swift 小鸡BB
接下来设定 BB~ TextView 的id 为 ggTextView
swift 小鸡BB
此时开始来撰写程序
点选MainActivity
swift 小鸡BB
我们现在采用绑定事件的方法
去设定按钮被点选时要执行的事情
将程序修改成这样

package com.test.chickbb

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // 透过 R.id.ggButton 取得 Button 
        val ggButton: Button = findViewById(R.id.ggButton)
        // 绑定 ggButton onClick 要执行的方法
        ggButton.setOnClickListener{ ggAction() }
    }

    fun ggAction() {
        // 透过 R.id.ggTextView 取得 TextView 
        val ggTextView: TextView = findViewById(R.id.ggTextView)
        // ggTextView 更新  text 
        ggTextView.text = ggTextView.text.toString().plus("BB~")
    }
}

完成了~就是这样~
接下来点选执行APP
然後按下小鸡BB按钮
swift 小鸡BB
现在每按一次按钮 就会多一个BB~
我们的第一个小程序完成搂~
是不是也很简单啊

差异

Xcode 与 Android Studio 编辑器上的差异
从这边开始慢慢有差异的感觉出现了

Xcode 用起来明显多了一种~潮一点的感觉
很多动作会透过拖拉与快速键执行

Android Studio 操作起来比较 “工程师” 的感觉
很多都是透过程序码与设定来完成功能

但本质上其实都没有太大区别
习惯就好~

小碎嘴时间 ヽ(゚´Д`)ノ゚

你知道吗~ (菜头?

我们写Web前端 在做到Mobile版本时
常常会被要求做一些类似App的功能

但有些东西就真的很难做啊~~~~(ʘ言ʘ╬)
例如固定直屏或横屏

我最多就是挡住并提示用户转向 就是不能固定啊(//●⁰౪⁰●)//

然後需求方就会问: APP都做得到 你们不行喔(失望

沃去~ 能比吗? 就是不同东西啊!!
然後我也只能努力想办法~尽力试看看...

如果真的做不出来 就只能去跟需求方 ”道歉, 说真的做不出来“
你说说~我容易吗我? 「(°ヘ°)

我现在努力学APP 等我出师
你要那个就给你哪个

都给你~ ⋋╏ ❛ ◡ ❛ ╏⋌ 钱加倍!


<<:  自动化 End-End 测试 Nightwatch.js 之踩雷笔记:等待时间

>>:  GCP VPC防火墙

Day 12 Flask 基本设定

开始专案前需要先对 Flask 设定一下,让它能够开发的更顺手(又是一段超短的开头)。 基本设定 刚...

服务器运作简介

今天是第一天,我先简单的介绍一下网站服务器是如何运作的。还有如果在遭遇大量流量时,可能会有哪些状况。...

【网页设计 入门 】如何使用 Bootstrap 与 Github Pages 制作 个人网站 ?

简单架设 x 不失质感 目录 源起 : 开发者网站 开发工具 : Adobe Brackets 基础...

[DAY 08] Elastic Load Balancer

ELB (Elastic Load Balancer) ELB 是一个托管的 load balanc...

Day05 - Python基本语法 Part 2,关於「集合」

接续昨天的基本语法,今天将主要集中在「集合」的内容整理。 范例程序主要来自於W3Schools。 集...