-
這一遍代碼很啰嗦,因?yàn)橛辛撕枚嗪枚嗟淖⑨?/h3>
- Xcode版本 7.0 (swift語法不穩(wěn)定,有的版本的語法不一樣...)
- 第一次寫Swift UI 的項(xiàng)目,基本就啰嗦一下
- 一個(gè)人的自學(xué)之路希望不會(huì)再斷了
class ViewController: UIViewController {
// 與 storyboard 想關(guān)聯(lián)的,與 oc 中的概念一樣
@IBOutlet weak var img: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// 設(shè)置背景色,剛開始逗比了,在 storyboard中設(shè)置成了紅色,順道也練習(xí)一下怎么修改屬性
self.img.backgroundColor = UIColor.whiteColor()
}
// 利用拖線的方式生成 button 的方法
@IBAction func dazhao()
{
// 調(diào)用自定義的方法
imageAnimation("dazhao", imageNumber: 87)
}
@IBAction func xiaoZhao() {
imageAnimation("xiaozhao3", imageNumber: 39)
}
// 定義的動(dòng)畫方法
func imageAnimation(imageName: String, imageNumber: Int)
{
// 聲明一個(gè)空的 image 數(shù)組
var imgArray:[UIImage]! = []
for var i = 1; i <= imageNumber; i++
{
// 拼接名稱
let name: String? = imageName + "_\(i)"
// 獲取app中的圖片 參數(shù)是:可選值Optionals
let filePath: String? = NSBundle.mainBundle().pathForResource(name, ofType: "png")
// 根據(jù)路徑獲得圖片
let image: UIImage? = UIImage(contentsOfFile: filePath!)
// 往數(shù)組中添加圖片
imgArray.append(image!)
}
// 給動(dòng)畫數(shù)組賦值
img.animationImages = imgArray
// 設(shè)置重復(fù)次數(shù), 學(xué)過的都知道...0 代表無限循環(huán),其他數(shù)字是循環(huán)次數(shù),負(fù)數(shù)效果和0一樣...
img.animationRepeatCount = 1
// 動(dòng)畫完成所需時(shí)間
img.animationDuration = 87*0.03
// 開始動(dòng)畫
img.startAnimating()
}
}
-
聲明屬性方式的對比
- swift中聲明屬性的方式
@IBOutlet weak var img: UIImageView!
- oc中聲明屬性的方式
@property (nonatomic, strong)IBOutlet UIImageView *image;
- swift中聲明屬性的方式
- 通過直觀的比較,可以看到 Swift 聲明方式完全和oc不一樣了...有木有...有木有...但是共同之處還是有的,畢竟都是蘋果自家的..
-
@IBOutlet
與IBOutlet
都是指定這里聲明的是可以與控件進(jìn)行綁定的屬性,同理可證:@IBAction
與IBAction
效果一樣 -
weak
學(xué)過ARC內(nèi)存管理機(jī)制,應(yīng)該都曉得吧...如果不懂的話,面壁去...回去OC中學(xué)習(xí)ARC去...不過一定要鬧明白MRC怎么處理... -
var img: UIImageView!
與UIImageView *image
這里是屬性類型的聲明,如果看過swift語法的應(yīng)該曉得這是怎么回事...不懂的話...等下發(fā)連接,不懂的客觀可以去看看...不過,看不懂也不要罵作者...(因?yàn)槲揖褪亲髡?..)
-
-
方法聲明的對比
- swift中方法的聲明
func imageAnimation(imageName: String, imageNumber: Int)
- oc中方法的聲明
- (void) playImageAnimationWithName:(NSString *)name imageCount:(int)count
- swift中方法的聲明
- 方法的聲明方式完全是變了天一樣...swift中聲明的方法中,一點(diǎn)也看不到oc的影子,寫過javascript的同學(xué),有木有一種熟悉的感覺
function
的感覺出現(xiàn)了...- swift 中聲明方法的關(guān)鍵字是
func
- 聲明的方法有兩個(gè)參數(shù),一個(gè)String,一個(gè)Int
(imageName: String, imageNumber: Int)
,沒有返回值,如果存在返回值,你會(huì)看到->
- swift 中聲明方法的關(guān)鍵字是
關(guān)于方法的調(diào)用,swift 用的是其他語言例如 .Net, Java 中的 點(diǎn)語法
方法名變化不大,基本上都是oc中的方法名稱,不過是通過 點(diǎn)語法 進(jìn)行調(diào)用, 看到了 點(diǎn)語法 瞬間感覺這個(gè)世界清新了許多...
自學(xué)Swift之常用類型與聲明
自學(xué)Swift之可選值Optionals
// 聲明 可選值Optionals
let name: String? = imageName + "_\(i)"
// 獲取app中的圖片 參數(shù)是: 可選值Optionals
let filePath: String? = NSBundle.mainBundle().pathForResource(name, ofType: "png")
// ofType 是參數(shù)的別名, 不能省略