現(xiàn)在起 開始嘗試用 swift
寫點(diǎn)小項(xiàng)目
廢話少說 直接上效果圖!
這次的目的 是基于MMDrawerController 來實(shí)現(xiàn)類似QQ 那樣的側(cè)邊抽屜展開和關(guān)閉效果
2017-05-05
- pod 引入框架
pod 'MMDrawerController','~>0.6.0'
貼上自己的Podfile 文件
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'apojfoisdjf' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'MMDrawerController','~>0.6.0'
# Pods for apojfoisdjf
target 'apojfoisdjfTests' do
inherit! :search_paths
# Pods for testing
end
target 'apojfoisdjfUITests' do
inherit! :search_paths
# Pods for testing
end
end
2.創(chuàng)建橋接文件.
new file -> Head File -> name(Yoper-Bridging-Header.h)(這是官方推薦的命名方式 項(xiàng)目名-Brigding-Header)
在這個(gè)橋接文件中 引入pod 中的三方庫 就可以在swift 項(xiàng)目中使用 這寫庫了
buid setting 搜索 bridging 給 bridging Header 設(shè)置路徑
Swift 中使用 OC 三方庫
只要你的 Podfile 中 有這句話
want to use dynamic frameworks use_frameworks!
, 就不需要 橋接文件如何創(chuàng)建橋接文件
直接在需要用到三方庫 的文件中 import 庫文件 就直接用了.
我創(chuàng)建了橋接文件 興高采烈的以為再也不用引入頭文件就可以隨意使用三方文件, 結(jié)果 編譯器告訴我 第三方文件不存在, 不存在,,,, 把橋接文件刪干凈 一切都變得美好起來了
文章:
swift 中簡單的UI 操作
1.按鈕事件點(diǎn)擊
2.導(dǎo)航控制器創(chuàng)建
3.遵循了 某個(gè)協(xié)議 如果不實(shí)現(xiàn)它的requier 方法 會報(bào)錯(cuò)
swift 協(xié)議
demo 中用到了 代理協(xié)議 設(shè)計(jì)方法
左右抽屜兩邊的 控制器 跳轉(zhuǎn)下一個(gè)頁面 需要在中間控制器中跳轉(zhuǎn)
協(xié)議語法如下:
-
protocol protocolName :NSObjectProtocol
或者
protocol protocolName :class
接下來在類中 聲明代理屬性
weak var delegate:protocolName?
注意: 這里的 weak 只能 用來申明 類 對象
原因: swift 中 結(jié)構(gòu)體也可以遵循協(xié)議, 類也是一種特殊的結(jié)構(gòu)體 weak 智能修飾類對象, 所以這里要把 協(xié)議定義為 類協(xié)議
5 Swift - 訪問控制(fileprivate席楚,private,internal黔夭,public朗兵,open)
1俩莽,private
private訪問級別所修飾的屬性或者方法只能在當(dāng)前類里訪問。
2,fileprivate
fileprivate訪問級別所修飾的屬性或者方法在當(dāng)前的Swift源文件里可以訪問岭洲。(比如上門樣例把private改成fileprivate就不會報(bào)錯(cuò)了)
3,internal(默認(rèn)訪問級別坎匿,internal修飾符可寫可不寫)
internal訪問級別所修飾的屬性或方法在源代碼所在的整個(gè)模塊都可以訪問盾剩。
如果是框架或者庫代碼雷激,則在整個(gè)框架內(nèi)部都可以訪問,框架由外部代碼所引用時(shí)告私,則不可以訪問屎暇。
如果是App代碼,也是在整個(gè)App代碼驻粟,也是在整個(gè)App內(nèi)部可以訪問根悼。
4,public
可以被任何人訪問蜀撑。但其他module中不可以被override和繼承挤巡,而在module內(nèi)可以被override和繼承。
5酷麦,open
可以被任何人使用矿卑,包括override和繼承。
其他使用 swift 的總結(jié)
- 如何聲明類屬性
- 基本的方法調(diào)用 方法名+小括號
- 導(dǎo)航控制器 初始化
- 項(xiàng)目初始化時(shí) 不需要再創(chuàng)建一個(gè)新的UIWindow 了 直接用AppDelegate 中的 window 屬性就好
- swift 事件 和 OC 不同 #selector(事件方法)
- swift 按鈕事件傳值:
button.addTarget(self, action: #selector(buttonClick(_: )), for: .touchUpInside)
func buttonClick(_ button:UIButton){
}
2017-05-08
- swift 中使用宏定義 - Swift:宏定義
swift 中沒有提供宏系統(tǒng) , 支持條件編譯
> 可以使用下的三種方式來代替
1.新建一個(gè)類 聲明一些常量
2.復(fù)雜的宏定義 可是直接申明一個(gè)方法來代替
3.使用 pch 文件
如果圖片格式 不是 png 創(chuàng)建圖片時(shí) 記得要加上圖片格式 如下:
self.view.backgroundColor = UIColor(patternImage: UIImage.init(named: "leftBackGroundImage.jpg")!)
竟然忘記了放demo下載地址