标签:first 条件 from after 打印 中国首富 eve 使用 uikit
生成整套图标 https://appicon.co
? 例:diceImageView
? btnRoll
文件名:大驼峰法命名
? 全大写
申明一个变量就是制造一个容器,将数据放进去
let耗内存小,var可变。
首先考虑用let,如果提示不能给常量重新赋值,改为var
不同类型的数据不能直接进行运算(Float和Double不可运算)
let fullName = "\(name) liu"
? 进行逻辑判断时用
let aa = true
let bb: Bool = true
// 默认是Double类型,小数优先使用Double类型
let bb = 3.14
// swift类型推断:根据等号右侧的值推断是字符串
var str = "Hello,playground"
// 在变量中三指轻点提示推断类型
//申明index1的类型是Int,默认是0,=前后有空格,空格不对称会报错
var index1: Int = 0
Int 3
Float 3.14 // 精度不同,
Double 3.1415926 // 用的较多
Bool true,false
String "Angela","Philipp" // 一定要用双引号
index1 = Int.random(in:1...6 ) // 闭区间...会生成1到6之间的六个数字
//
// ViewController.swift
// Dice
//
// Created by 徐斌 on 2020/11/10.
//
import UIKit
class ViewController: UIViewController {
let diceImages = ["dice1","dice2","dice3","dice4","dice5","dice6"]
var index = 0
@IBOutlet weak var diceImageFirst: UIImageView!
@IBOutlet weak var sourceLabel: UILabel!
@IBOutlet weak var diceImageSecond: UIImageView!
@IBAction func btnRoll(_ sender: Any) {
rollBegin()
}
func rollBegin() {
let firstIndex = indexRandom()
let secondIndex = indexRandom()
let sourceNum = firstIndex + secondIndex + 2
diceImageFirst.image = UIImage(named: diceImages[firstIndex])
diceImageSecond.image = UIImage(named: diceImages[secondIndex])
sourceLabel.text = String(sourceNum)
}
// 摇手机手势结束之后执行函数
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
print("摇晃了手机")
rollBegin()
}
func indexRandom() -> Int {
return Int.random(in: 0...(diceImages.count-1))
}
override func viewDidLoad() {
super.viewDidLoad()
rollBegin()
// Do any additional setup after loading the view.
}
}
// round 是小数, pow()是平方
let bmi = round(weight / (pow(height,2)))
var sum = 0
// 对1到10进行取模运算,输出满足条件的数
for i in 1...10 where i % 2 == 0{
print(i)
}
//外部参数,内部参数 howMany是外部参数,total是内部参数
//一般我们不用外部参数
//也可以写下划线 _ ,也不常用
//func song( _ total:Int){
func song(howMany total:Int){
for i in (1...total).reversed(){
print("现在有\(i)"部iphone,卖出了一部,还剩\(i-1)部)
}
print("全部卖光啦")
}
song(howMany: 20)
关于tag的使用
使用场景:
? 设置button的tag值,该值为Int类型,区分哪一个button
例子:木琴app
//
// ViewController.swift
// 木琴
//
// Created by 徐斌 on 2020/11/10.
//
import UIKit
//A 是音频 V 是视频 Foundation 基础功能
import AVFoundation
class ViewController: UIViewController {
var player:AVAudioPlayer!
// 文件需要拖拽到xcode根目录中,不能拖到访达,会找不到文件
let sounds = ["note1","note2","note3","note4","note5","note6","note7"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
// 拖拽UIButton的时候要选择Action ,type选择UIButton
// button的tag属性在view那一栏
@IBAction func btnMusic(_ sender: UIButton) {
play(tag: sender.tag)
}
func play(tag:Int) {
// Bundle是app的根目录,main是主目录,forResource 是资源名字 withExtension是扩展名
let url = Bundle.main.url(forResource: sounds[tag], withExtension: "wav")
//打印的是主目录的绝对路径
print(Bundle.main.bundlePath)
// 在执行播放的时候会提示可能抛错,需要做异常处理
//错误提示:Errors thrown from here are not handled
//进行docatch
//错误提示:Value of optional type ‘URL?‘ must be unwrapped to a value of type ‘URL‘
// 翻译:可选类型“URL”的值?‘ 必须解包到“URL”类型的值‘
// 提示需要解包,用感叹号对 url 进行解包
do {
// 错误提示:Result of ‘AVAudioPlayer‘ initializer is unused
// 提示‘AVAudioPlayer未被使用,赋值给一个变量
player = try AVAudioPlayer(contentsOf: url!)
player.play()
}catch{
print(error)
}
}
}
通俗理解:在{}内定义的变量,其它地方是用不了的
Object-oriented programming (OOP)
class Question{
let answer:Bool
let questionText:String
init(correctQuestion:String,text:Bool) {
questionText = correctQuestion
answer = text
}
}
// 初始化:从类变成对象的一个过程
let question1 = Question( correctQuestion:"马云是中国首富" ,text: true)
标签:first 条件 from after 打印 中国首富 eve 使用 uikit
原文地址:https://www.cnblogs.com/exlo/p/13969612.html