Swift小技巧(一)

所有小技巧都是基于Swift3

1.OC中的#pragma mark在swift中靠抑,使用// MARK:來(lái)實(shí)現(xiàn)

// MARK: 分割
// MARK: - 分割
// TODO: 分割
// FIXME: 分割

結(jié)果如圖:

屏幕快照 2017-04-27 下午1.47.48.png

2.使用GCD實(shí)現(xiàn)延時(shí)執(zhí)行

        print("開(kāi)始等待"+Date().description)
        DispatchQueue.main.asyncAfter(deadline: .now()+5) {
            print("延時(shí)5S執(zhí)行"+Date().description)
        }

3.獲得string的長(zhǎng)度

let str = "abcderf"
let strLenth = str.characters.count
print(strLenth)//7

4.swift可以運(yùn)行的系統(tǒng)有哪些随闺?

swift可以運(yùn)行在OS X 10.9 和 iOS 7以后的系統(tǒng)中汁蝶。

5.OC中的@selector()在swift中的使用

let timer = Timer(timeInterval: 1, target: object, selector:#selector(MyClass.test),  userInfo: nil, repeats: false)
button.addTarget(object, action:#selector(MyClass.buttonTapped),  for: .touchUpInside)
view.perform(#selector(UIView.insertSubview(_:aboveSubview:)), with: button, with: otherButton)

6.創(chuàng)建單例對(duì)象

class MyClass {
    static let sharedInstance = MyClass()
}

7.#ifdef#endif在swift中使用

#if DEBUG
    let a = 3
#else
    let a = 4
#endif

8.同時(shí)遍歷數(shù)組的index和元素

let array = ["a","b","c","d"]
for (index, element) in array.enumerated() {
    print("\(index)--\(element)")
}

9.實(shí)現(xiàn)多個(gè)textfield之間,點(diǎn)擊next跳轉(zhuǎn)的功能

依次設(shè)置好textfield的tag值,加入到同一個(gè)view之中缀壤,然后設(shè)置textfield的代理,重寫(xiě)return鍵按下去后的回調(diào)即可餐塘。

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        let nextTage = textField.tag + 1
        let nextField = textField.superview?.viewWithTag(nextTage)
        if let field = nextField {
            field.becomeFirstResponder()
        }else {
            textField.resignFirstResponder()
        }
    }

10.獲得textfield的編輯事件妥衣,并且快速實(shí)現(xiàn)點(diǎn)擊空白處鍵盤(pán)收回功能

field.addTarget(self, action: #selector(textfieldTextChange(sender:)), for: .editingChanged)
//然后在textfieldTextChange方法中實(shí)現(xiàn)
func textfieldTextChange(sender: UITextField) {
        print("開(kāi)始編輯")
    }
//快速實(shí)現(xiàn)點(diǎn)擊空白處鍵盤(pán)收回功能
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        view.endEditing(true)
    }

11.快速分割字符串

let fullName = "First Second"
let nameArr = fullName.components(separatedBy: " ")
nameArr.map { print($0) }//First、Second

12.創(chuàng)建一個(gè)弱引用的代理屬性

//protocol需要繼承自class,表明該代理只能用于class税手,不能用于enum和struct
protocol ProtocolDelegate: class {}
class SomeClass {
    weak var delegate: ProtocolDelegate?
}

13.textfield內(nèi)容太過(guò)于靠近左邊的解決辦法

默認(rèn)為如圖所示:

屏幕快照 2017-04-27 下午4.35.38.png

如下設(shè)置后:

        let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: 20, height: 30))
        field.leftView = paddingView
        field.leftViewMode = .always

效果如圖:

屏幕快照 2017-04-27 下午4.38.20.png

14.Int和String之間互轉(zhuǎn)

let a = 10
//Int->String
let b = String(a)
//String->Int
let c = Int(b)

15.判斷數(shù)組是否含有某個(gè)元素

let array = [1,2,3,4,5]
if array.contains(4) {
    print("有")
}

16.判斷字符串中是否包含指定的字符串

let string = "hello swift"
if string.contains("hello") {
    print("有")
}

17.URL與String轉(zhuǎn)換

//轉(zhuǎn)換成字符串
let url = URL(string: "http://12.12.12.12")
print(url?.absoluteString)
//轉(zhuǎn)換成路勁給NSFileManager等使用蜂筹,只有是路勁是轉(zhuǎn)換才會(huì)成功
let url1 = URL(string: "/usr/my/text")
print(url1?.path)

18.UITableView滾動(dòng)到頂部

方法一:

[mainTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];

方法二:

mainTableView.setContentOffset(CGPoint.zero, animated: true)

19.如何生成隨機(jī)數(shù)

Int(arc4random_uniform(100)+10)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芦倒,隨后出現(xiàn)的幾起案子艺挪,更是在濱河造成了極大的恐慌,老刑警劉巖兵扬,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件麻裳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡器钟,警方通過(guò)查閱死者的電腦和手機(jī)津坑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)傲霸,“玉大人疆瑰,你說(shuō)我怎么就攤上這事£甲模” “怎么了穆役?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)梳凛。 經(jīng)常有香客問(wèn)我耿币,道長(zhǎng),這世上最難降的妖魔是什么伶跷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任掰读,我火速辦了婚禮,結(jié)果婚禮上叭莫,老公的妹妹穿的比我還像新娘蹈集。我一直安慰自己,他們只是感情好雇初,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布拢肆。 她就那樣靜靜地躺著,像睡著了一般靖诗。 火紅的嫁衣襯著肌膚如雪郭怪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天刊橘,我揣著相機(jī)與錄音鄙才,去河邊找鬼。 笑死促绵,一個(gè)胖子當(dāng)著我的面吹牛攒庵,可吹牛的內(nèi)容都是我干的嘴纺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼浓冒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼栽渴!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起稳懒,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤闲擦,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后场梆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體墅冷,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年辙谜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俺榆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡装哆,死狀恐怖罐脊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜕琴,我是刑警寧澤萍桌,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站凌简,受9級(jí)特大地震影響上炎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雏搂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一藕施、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凸郑,春花似錦裳食、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至而昨,卻和暖如春救氯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背歌憨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工着憨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人务嫡。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓享扔,卻偏偏與公主長(zhǎng)得像底桂,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惧眠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件于个、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,122評(píng)論 4 61
  • 作者:全冠晶食用菌調(diào)理\潘映航 天氣變化無(wú)常多保重身體 今天天氣有點(diǎn)涼氛魁,上午的時(shí)候穿了兩件半,下午的時(shí)候熱的要命厅篓。...
    短視頻制作啟航閱讀 638評(píng)論 0 0
  • 在QT for Android上實(shí)現(xiàn)對(duì)物理按鍵的監(jiān)聽(tīng) 運(yùn)行的目標(biāo)平臺(tái)比較特殊秀存,有幾個(gè)比較特殊的物理按鍵,其實(shí)現(xiàn)機(jī)制...
    艾碼eima閱讀 1,808評(píng)論 0 0
  • 我鄙夷著墳?zāi)?自己卻變成了死人 我惶恐地走進(jìn)灰色的工廠(chǎng) 我曾是如此向往它 深?lèi)?ài)它 一隔三月 二隔三年 在凌霄殿前 ...
    晉小雞閱讀 275評(píng)論 0 0