[iOS] 搜尋控制器客制按鈕
先前有提過搜尋控制器 (Search Controller),現在想要讓搜尋控制器客制按鈕,預設只有一個取消按鈕,那我們怎麼讓它變成兩個按鈕呢?
前一陣子介紹圖解APP訊息推播流程,是關於iOS和Android兩大平台從發送到接收的整個過程,現在我們想要實作處理推送通知 (Process Push Notification),iOS SDK已經包好方法只要註冊成功後,就能透過某個method來繼續接下來的處理。可以先參考圖解蘋果推播通知服務 (Apple Push Notification Service)。
我人生第一次馬拉松就在雙溪鐵道接力馬拉松完成!不過我不是跑42.2公里,而是只有跑10.6公里,因為這是個接力賽嘛~聽熱情的主持人說明,這次的接力馬拉松是個創舉,我們參賽者真的也能感受到,除了大家同心協力完成一場比賽,還有拿到的獎牌可代表團結合作的精神,更加深我們125超慢跑團的感情~
寫iOS App時,有時候需要用到自己找的音效,然而不是的可運用的格式,怎麼辦?這篇要講mp3轉caf,而且是用終端機內建指令喔!
開啟終端機到該mp3底下的資料夾⋯⋯
終端機指令範例:
afconvert -f caff -d LEI16@44100 -c 1 in.mp3 out.caf
in.mp3就是原始聲音檔,out.caf即是轉換後的音檔。
參考:Converting audio to CAF format for playback on iPhone using OpenAL。
住在台北九年多,一年中約莫有1/3的時間是陰雨,大學時代的我比較呆,有時候就被雨淋,現在變聰明要過有品質的生活,所以出門一定會準備雨具。機車我放了雨衣、雨褲和備用的輕便雨衣,背包中則放了雨傘。經過將近兩年的使用,我開始要補強雨褲和雨傘,但是我又不會拿針線自己縫,那就趁清明四天連假帶回家給媽咪處理啦XD~
雨傘黏扣脫落,雨褲鬆緊帶爆掉,媽咪主要工作就是縫紉,所以就帶到工廠去幫我修繕。拿回來一看,我便可再戰四年!
真感溫阿媽的巧手,於是我可以粗魯地在雨天使用它們:P~
看到這幾張馬克畫的圖解超商店員技能,不禁會心一笑,心想超商店員技能樹不斷擴展中,偶爾進超商買食品飲料的我,看到裡頭除了商品以外,還有各式各樣的設備,沒有看到的還有虛擬的服務,服務可以說是涵蓋整個食衣住行育樂,若要我只選一家店來過生活,那目前我肯定會選擇超商啦!
前一晚去萊爾富見朋友,買了兩瓶無糖豆漿,因為加1元就多一瓶。結帳時我掏出護貝的手機條碼和手機中歐付寶App,前者是為了登錄統一發票,後者是為了付款,這位我第一次見到的年輕女孩,看來是第一次掃描這兩個玩意兒,因為我對新事物相當感興趣且願意嘗試,於是我就教導超商妹妹這兩個玩意兒的用途~
若想賺點錢且有社會歷練,來當超商店員肯定能學到非常多!
JSON(JavaScript Object Notation)是一種輕量級的資料交換語言,以文字為基礎,且易於讓人閱讀。儘管JSON是Javascript的一個子集,但JSON是獨立於語言的文字格式,並且採用了類似於C語言家族的一些習慣。
不過目前C++並無內建函式可以解析JSON (Parse JSON),於是我便到GitHub找輕便好用的套件:JSON for Modern C++
上圖展示套件有四種方式來讀取JSON資料,因為我是要從檔案讀取來解析,所以足夠我使用囉~
先前介紹讀取檔案 (Read File),是以一行一行逐步讀取,現在我們想要一次讀取整個檔案為字串,再來做其它處理,這樣可以怎麼實作呢?
這個檔案內容是關於人臉資訊的JSON檔,包含年齡、性別、姿勢、種族、微笑等等量化資訊。
UIAlertView已經被棄用,iOS 8開始由UIAlertController取代它囉!如此變得更親切迷人~
過去能透過UIAlertView做出可填寫欄位UITextField,現在UIAlertController也能實現,而且更加方便好操作。
例如上圖程式碼這麼寫:
/** Theme: UIAlertController IDE: Xcode 7 Language: Objective C Date: 105/03/30 Author: HappyMan Blog: https://cg2010studio.wordpress.com/ */ UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"修改暱稱" message:@"" preferredStyle:UIAlertControllerStyleAlert]; [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { // optionally configure the text field textField.keyboardType = UIKeyboardTypeDefault; }]; UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"送出" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { UITextField *textField = [alert.textFields firstObject]; }]; [alert addAction:okAction]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }]; [alert addAction:cancelAction]; [self presentViewController:alert animated:YES completion:nil];
看要增加幾個選項按鈕都可以,而且都是用Block來做後續處理,不用再像過去還要跳來跳去的Delegate。
HappyMan・迴響