如何制作番茄鐘App - iOS開發(fā)

App展示


25minGifs.gif

  1. ** App 下載地址: ** https://itunes.apple.com/cn/app/id1103593231
  2. App 完整代碼地址:https://github.com/PoBlue/25min
  3. 番茄鐘App調(diào)查文章:http://www.reibang.com/p/e997bb222409

前言


這是個(gè)番茄類的App,接著來我就展示這個(gè)App的功能伦连。然后將功能的做法總結(jié)出來逛裤,將我查閱的資料整理出來〈及樱看中那個(gè)功能就直接自己動(dòng)手為自己App添加。

本文章目錄

  • 定時(shí)功能
  • 通知提醒
  • 音樂播放
  • Today Widget
  • 自定義UICollectionView Layout
  • 自定義轉(zhuǎn)場(chǎng)動(dòng)畫
  • lldb
  • 讀取文件路徑
  • xib開發(fā)
  • 膠囊狀Button
  • Cocoapod的使用
  • UILabel 和 URL Scheme

定時(shí)功能


NSTimer
使用下面代碼這就可以每一秒都執(zhí)行函數(shù)timeUp

NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timeUp:", userInfo: nil, repeats: true)

通過在函數(shù)timeUp用if語句判斷就可以實(shí)現(xiàn)定時(shí)功能了伏社。

能執(zhí)行操作的通知


效果如圖:

就是當(dāng)收到通知時(shí)可以選擇相應(yīng)的選項(xiàng)饺藤。
這樣可以快速地執(zhí)行相應(yīng)操作,避免進(jìn)入App再點(diǎn)擊操作這些繁瑣步驟干旧。

實(shí)現(xiàn)的文章在這里:通知提醒 - iOS開發(fā)

這個(gè) 項(xiàng)目 這個(gè)文件用到了這個(gè)技術(shù)

播放音樂


實(shí)現(xiàn)的文章在這里 音樂播放器

這個(gè) 項(xiàng)目 這個(gè)文件用到了這技術(shù)

通知欄的TODAY WIDGET


效果如下:

today.gif

這個(gè)文件用到了這個(gè)技術(shù)

輪轉(zhuǎn)式的卡片效果


先上效果渠欺,如下:

由于教程比較長,我就另寫了篇文章椎眯。
利用collectionViewlayout 加一點(diǎn)點(diǎn)數(shù)學(xué)計(jì)算

通過以下這篇文章你會(huì)了解怎么創(chuàng)建自己喜歡的layout而不是使用UICollectionViewFlowLayout.

這個(gè) 項(xiàng)目 這個(gè)文件用到了這技術(shù)

文章傳送門:如何做一個(gè)像輪子般旋轉(zhuǎn)的UICollectionView

自定義Present ViewController


效果如下:

f8199acb-9513-4329-9772-2d73c7104828.gif

教程文章:自定義Present 轉(zhuǎn)場(chǎng)動(dòng)畫
這個(gè) 項(xiàng)目 這個(gè)文件用到了這技術(shù)

lldb


這次項(xiàng)目我比較常用的就expression命令挠将,因?yàn)橛兴涂梢詳帱c(diǎn)App,然后修改一些數(shù)據(jù)做一些測(cè)試编整。

如圖直接修改dimingViewalpha值:

![Uploading a503afa7-4bd9-499d-9cf3-548940d1f8b0_604475.png . . .]


傳送門:

讀取目錄下的所有文件路徑


使用fileManagerenumeratorAtPathnextObject()進(jìn)行窮舉

let appMainBundlePath = NSBundle.mainBundle().bundlePath

func filePathesInDir(dirPath:String) -> [String]{
    var filePathes = [String]()
    var fileURL:String
    
    
    let fileManager = NSFileManager.defaultManager()
    let enumerator = fileManager.enumeratorAtPath(appMainBundlePath + dirPath)
    
    
    while let element = enumerator?.nextObject() as? String{
        if let ext = ext {
                fileURL = appMainBundlePath + dirPath + "/" + element
                filePathes.append(fileURL)

    }
    
    return filePathes
}

有關(guān)文件路徑訪問的文章舔稀,點(diǎn)擊本鏈接

使用 xib 開發(fā)


這樣做的效果就是能夠快速弄好UI。


教程是一個(gè)一個(gè)demo弄的掌测,看完就會(huì)了内贮,以下傳送門
教程鏈接

膠囊形狀Button


效果如圖:

原理:使用layer的radius,如下圖

然后只需令radius= 按鈕高度 / 2

代碼如下:

func makeRadiusBtn(btn:UIButton,borderColor:CGColor){
    let btnH:CGFloat = CGRectGetHeight(btn.bounds)
    
    btn.layer.borderColor = borderColor
    btn.layer.borderWidth = 1.0
    btn.layer.cornerRadius = btnH / 2
}

關(guān)于button的更多效果汞斧,例如折角之類的贺归,可以參考下面這個(gè)blog
傳送門:

Cocoapod的使用


文章地址:Cocoapod使用總結(jié)

用16進(jìn)制獲取 UIColor


因?yàn)榫W(wǎng)絡(luò)上大多數(shù)都是用16進(jìn)制表示RGB的,令UIColor能夠處理16進(jìn)制還是挺有用的断箫。

一行宏定義就能滿足要求了

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

使用如下

self.view.backgroundColor = UIColorFromRGB(0xCECECE);

原理

#define UIColorFromRGB(rgbValue) \\\\\\\\\\\\\\\\
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \\\\\\\\\\\\\\\\
                green:((float)((rgbValue & 0x00FF00) >>  8))/255.0 \\\\\\\\\\\\\\\\
                 blue:((float)((rgbValue & 0x0000FF) >>  0))/255.0 \\\\\\\\\\\\\\\\
                alpha:1.0]

其實(shí)就是利用掩碼,獲取RGB相應(yīng)位置的數(shù)字秋冰,然后使用 >>進(jìn)行右移仲义。

例如red,0xCECECE & 0xFF00000 = 0xCE0000
然后16進(jìn)制中的1個(gè)0等于2進(jìn)制中的4個(gè)0,所以0xCE0000 >> 16 = 0xCE
接著除以0xFF(255)就可以得出百分比了剑勾。

UILabel


label的屬性
大小自適應(yīng)

設(shè)置Url Scheme


譬如我有個(gè)叫25min的app

在25min app的info.plist設(shè)置埃撵,添加URL type,設(shè)置URL identifier虽另,添加Url Schemes暂刘,然后URL Schemes的item 0就是你的Url scheme的開頭。

接著在appDelegate添加處理Url Schemes的method

//return true 則啟動(dòng)app捂刺,false則不啟動(dòng)谣拣。
    func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
        return true
    }

這時(shí)使用25min://就可以打開25min app了募寨。可以在Safari上測(cè)試打Url 試試能不能跳轉(zhuǎn)森缠。

這個(gè) 項(xiàng)目 這個(gè)文件用到了這技術(shù)


(END And Thank U)

這里有完整的項(xiàng)目代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拔鹰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贵涵,更是在濱河造成了極大的恐慌列肢,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宾茂,死亡現(xiàn)場(chǎng)離奇詭異瓷马,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)跨晴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門欧聘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坟奥,你說我怎么就攤上這事树瞭。” “怎么了爱谁?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵晒喷,是天一觀的道長。 經(jīng)常有香客問我访敌,道長凉敲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任寺旺,我火速辦了婚禮爷抓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阻塑。我一直安慰自己蓝撇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布陈莽。 她就那樣靜靜地躺著渤昌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪走搁。 梳的紋絲不亂的頭發(fā)上独柑,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音私植,去河邊找鬼忌栅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛曲稼,可吹牛的內(nèi)容都是我干的索绪。 我是一名探鬼主播湖员,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼者春!你這毒婦竟也來了破衔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤钱烟,失蹤者是張志新(化名)和其女友劉穎晰筛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拴袭,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡读第,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拥刻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怜瞒。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖般哼,靈堂內(nèi)的尸體忽然破棺而出吴汪,到底是詐尸還是另有隱情,我是刑警寧澤蒸眠,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布漾橙,位于F島的核電站,受9級(jí)特大地震影響楞卡,放射性物質(zhì)發(fā)生泄漏霜运。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一蒋腮、第九天 我趴在偏房一處隱蔽的房頂上張望淘捡。 院中可真熱鬧,春花似錦池摧、人聲如沸焦除。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膘魄。三九已至,卻和暖如春宦棺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背黔帕。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工代咸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人成黄。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓呐芥,卻偏偏與公主長得像逻杖,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子思瘟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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