Just My Life & My Work

Archive for the ‘iOS’ Category

[iOS] Intercom 客戶溝通平台

我們想要觀察或追蹤使用者,來提供符合其需求的服務,無論使用者登入與否,我們皆能掌握其動態。甚至使用者想要聯繫客服,也變得相當方便簡單。

Intercom Customer Communication Platform.png

可以想像這樣的情境,當使用者對某頁面感到疑惑,我們在後台看到他停留許久,此時就能推送關心提示,讓他能順利完成需求!

(繼續閱讀…)

[iOS] 返回按鈕包含文字與圖片

Navigation Controller原本就有返回按鈕,然而我們想要客製化為包含文字與圖片,可以怎麼做呢?預設是返回圖案和前一視圖的標題,如今我們想換成別的圖案和標題。

backIcon

(繼續閱讀…)

[iOS] 漸層色彩影像 (Gradient Color Image)

近年來App流行漸層色彩影像 (Gradient Color Image),我們不想要美術師出圖,因為有很多螢幕尺寸要考量,所以想由程式碼來個別生成。

漸層色彩影像 Gradient Color Image

結果圖上有三個Image View,上圖為單純藍色,左下為水平漸層黑色alpha值由1到0,右下為垂直漸層黑色alpha值由1到0。

我將所需要的程式碼檔案放在GitHub GistGradient Color Image

[iOS] 刪除 User Defaults

很多時候我們會把資料儲存在User Defaults,也就是本機端,只要App不被刪掉,那麼每次重新開啟App,就能再從User Defaults取得先前所儲存的資料。

有某時候我們需要把User Defaults給清空,比如要給其它帳號使用,此時登出A就要將A所儲存的User Defaults給清除乾淨,而登入B後又是全新沒有受污染的User Defaults。

該怎麼做呢?以下的code就能刪除所有存在User Defaults中的key,不過卻不會刪掉系統預設的key呢!

/**
 Theme: Delete User Defaults
 IDE: Xcode 7
 Language: Objective C
 Date: 104/12/07
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
#pragma mark - 刪除 UserDefaults
    NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
    NSDictionary *dict = [defs dictionaryRepresentation];
    for (id key in dict) {
        [defs removeObjectForKey:key];
    }
    [defs synchronize];

清空前的User Defaults之key群:

(
GGUserDefaultsKeyLoginAccount,
AppleKeyboardsExpanded,
GGUserDefaultsKeyLoginPassword,
PCSavePendingUserDefaults,
GGUserDefaultsKeyhasFirstShowMenu,
GGUserDefaultsKeyIsLogin,
INNextHearbeatDate,
com.apple.content-rating.ExplicitBooksAllowed,
GGUserDefaultsKeyLoginPasswordAlternative,
AppleKeyboards,
HasUserRegisteredFonts,
PKEnableStockholmSettings,
GGUserDefaultsKeyRememberPassword,
AppleLanguagesDidMigrate,
com.apple.content-rating.TVShowRating,
com.apple.content-rating.ExplicitMusicPodcastsAllowed,
NSLanguages,
com.apple.content-rating.MovieRating,
GGUserDefaultsKeyQBId,
GGUserDefaultsKeyLoginAccountAlternative,
PreferredLanguages,
AddingEmojiKeybordHandled,
MSVLoggingMasterSwitchEnabledKey,
AppleLocale,
AppleLanguages,
NSInterfaceStyle,
com.apple.content-rating.AppRating,
AppleITunesStoreItemKinds
)

清空後的User Defaults之key群:

(
PKEnableStockholmSettings,
INNextHearbeatDate,
MSVLoggingMasterSwitchEnabledKey,
AppleITunesStoreItemKinds,
AddingEmojiKeybordHandled,
com.apple.content-rating.ExplicitBooksAllowed,
com.apple.content-rating.MovieRating,
HasUserRegisteredFonts,
AppleLanguagesDidMigrate,
com.apple.content-rating.AppRating,
AppleLanguages,
NSLanguages,
NSInterfaceStyle,
com.apple.content-rating.ExplicitMusicPodcastsAllowed,
AppleKeyboardsExpanded,
AppleKeyboards,
PreferredLanguages,
AppleLocale,
com.apple.content-rating.TVShowRating
)

key前綴為PC或GG,就是我在此專案中儲存資料用的key喔~

參考:Delete all keys from a NSUserDefaults dictionary iPhone

[iOS] 掃描QR Code和Bar Code

我以為還要去找第三方套件來用,一查網路才發現,從iOS 7開始,SDK已經內建有掃描條碼的API,我想會把這功能納入麾下是必然的,因為在生活中條碼無所不在,除了常見的用途如辨識商品(書籍、食品、識別證等)外,還能做非常有趣的應用(導覽、遊戲等)。

iOS 掃描QR Code和Bar Code

猜猜看可以掃到什麼?

現在就來學一下怎麼掃描QR Code和Bar Code吧!

(繼續閱讀…)

[圖解][iOS] 蘋果推播通知服務 (Apple Push Notification Service)

會使用手機的人都一定會接觸到推播通知!身為iOS App開發者三年的我,也只大概瞭解其如何實作,現在我要來揭開它詳細的運作原理與架構。這裡也不想花大篇幅描述太多細節,不是很聰明的我就用圖解蘋果推播通知服務 (Apple Push Notification Service)的方式來理解它!

Apple Push Notification Service00003

官方開發者文件已經說得非常清楚,然而會主動去翻來看的人並不多,大概是因為全部都是英文描述,加上十分詳細的說明,讓想要快速上手的人另尋其它網頁。上週幫朋友小A測試iOS後台推播,更進一步知道如何申請推播憑證,在此之前要先申請開發憑證!才知道iOS的推播還真的很「耐人尋味」。想起八月份的百貨公司案子,所使用的後台推播服務是被臉書收購的Parse,它讓我不必自製一個後台就能輕易地把訊息推播到裝置上!

(繼續閱讀…)

[iOS] 開發時設定網路速度

原本在公司就是使用非常快速的WiFi,自己在開發測試的時候顯然沒有網路慢的問題,然而因為開發的app是要給米國人使用,此時就要考慮米國網路環境問題,據說,米國網路環境不如台灣好⋯⋯

developer network2

(繼續閱讀…)

[iOS] 將影像截取為4×6或6×4

iPhone的相機規格性能相當好,以iPhone 6為例,它有800萬畫素,寬高比為3×4或4×3,我們想要讓拍的相片的寬高比變為4×6或6×4,該怎麼做呢?

crop image

對照圖

(繼續閱讀…)

[iOS] UITableViewController加上客製視圖

幾乎沒有在用UITableViewController的我卡住了,真不曉得為何一定要用UITableViewController?因為它限制太大,其實可以由UIViewController所取代。因為table view固定整個畫面,要設定其frame就不太容易,想要加上客製view也真是難⋯⋯

table view controller add subview - before

因為是拿他人寫好的專案來改,他用storyboard做好一切會員有關的頁面,前後流程都已經確定,甚至此頁面的class是繼承他自己定義好的基礎class,所以我才不會想要大費周章從UITableViewController搬到UIViewController!

(繼續閱讀…)

[Xcode][iOS] 除錯平台印出中文字

時常用Xcode除錯的工程師都知道,Xcode對中文字還不是很友善,因為除錯時印出的內容,中文字都會變成以\U為開頭的編碼,如:

\U900d\U9059\U6587\U5de5\U4f5c\U5ba4

儘管知道這是中文字,但實在很難確認這行代表什麼字啊⋯⋯

好在總是有解決方案,我強者同事阿宅,找到解法更發揚光大,讓任何人只要引用自訂Category,之後在Xcode除錯平台上必能如實顯示中文字!

(繼續閱讀…)

標籤雲