App展示
- ** App 下載地址: ** https://itunes.apple.com/cn/app/id1103593231
- App 完整代碼地址:https://github.com/PoBlue/25min
- 番茄鐘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
效果如下:
這個(gè)文件用到了這個(gè)技術(shù)
輪轉(zhuǎn)式的卡片效果
先上效果渠欺,如下:
由于教程比較長,我就另寫了篇文章椎眯。
利用collectionView
的layout
加一點(diǎn)點(diǎn)數(shù)學(xué)計(jì)算
通過以下這篇文章你會(huì)了解怎么創(chuàng)建自己喜歡的layout
而不是使用UICollectionViewFlowLayout
.
這個(gè) 項(xiàng)目 這個(gè)文件用到了這技術(shù)
文章傳送門:如何做一個(gè)像輪子般旋轉(zhuǎn)的UICollectionView
自定義Present ViewController
效果如下:
教程文章:自定義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è)試编整。
如圖直接修改dimingView
的alpha
值:
![Uploading a503afa7-4bd9-499d-9cf3-548940d1f8b0_604475.png . . .]
傳送門:
讀取目錄下的所有文件路徑
使用fileManager
的enumeratorAtPath
和nextObject()
進(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
設(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)