iOS Demo的合集:字體的漸隱漸現(xiàn)、輸入金額的大寫顯示、返回程序彈出密碼框、 文件管理器、旋轉(zhuǎn)的tableView

詳解統(tǒng)一在最下方,或查看git文件中的README

字體的漸隱漸現(xiàn)、漸進(jìn)漸出
1.gif
金額的大寫顯示
返回程序彈出密碼框
1.gif
文件管理器
旋轉(zhuǎn)的tableView
  • 地址:[旋轉(zhuǎn)的tableView](https://github.com/DrunkenMouse/rotateTableView
  • 這個(gè)有必要先說下,將一個(gè)tableView旋轉(zhuǎn)90度,內(nèi)部的tableViewCell在逆轉(zhuǎn)90度。達(dá)到tableView橫向滾動(dòng),內(nèi)部cell上掛載一個(gè)新的tableView用于顯示。感謝NSLog的幫助。

Demo詳解

字體的漸隱漸現(xiàn)、漸進(jìn)漸出

仿RQShineLabel RQShineLabel

設(shè)置ADLabel的text內(nèi)容時(shí),就會(huì)通過text的set方法將字符串轉(zhuǎn)換成可變字符串 通過可變字符串的set方法,將字符串中的字符顏色透明度都設(shè)置為0并賦值給ADLabel 并為每個(gè)字符設(shè)置一個(gè)隨機(jī)并基于動(dòng)畫時(shí)間而生成的淡出時(shí)間保存在數(shù)組中

shine方法:動(dòng)畫開啟并沒有指定完成后的操作 shineWithCompletion: 動(dòng)畫開啟并指定完成后的操作 調(diào)用shine方法后會(huì)調(diào)用shineWithCompletion,傳過去的操作為nil 在shineWithCompletion方法中會(huì)完成保存操作,并設(shè)置淡出效果為NO,而后開啟動(dòng)畫

開啟動(dòng)畫:startAnimationWithDuration 其中會(huì)獲取當(dāng)前時(shí)間為開始時(shí)間,開始時(shí)間加字體漸近時(shí)間shineDuration為結(jié)束時(shí)間 通過取消幀動(dòng)畫的暫停開啟幀動(dòng)畫updateAttributedString

幀動(dòng)畫里會(huì)獲取當(dāng)前時(shí)間用于判斷是否超出動(dòng)畫時(shí)間 遍歷可變字符串的每個(gè)字符,并修改除空格、回車(包含'\n')、tab之外的字符的透明度 透明度是否修改通過以下方式判斷: 1.淡出效果并且透明度大于0 2.不是淡出效果并且透明度小于1 3.當(dāng)前時(shí)間 - 動(dòng)畫開始時(shí)間 >= 基于淡出效果而生成的一個(gè)隨機(jī)時(shí)間 應(yīng)該更新則獲取所需透明度值 : 當(dāng)前時(shí)間 - 開始時(shí)間 - 基于淡出效果而生成的一個(gè)隨機(jī)時(shí)間 如果是淡出狀態(tài)就獲取 1 - 透明度值 修改完后設(shè)置可變字符串內(nèi)容 并判斷如果當(dāng)前時(shí)間超過動(dòng)畫結(jié)束時(shí)間,暫停幀動(dòng)畫,執(zhí)行結(jié)束操作

至此,動(dòng)畫效果完成

fadeOut: 手動(dòng)開啟淡出效果但沒有結(jié)束后的操作 fadeOutWithCompletion: 手動(dòng)開啟淡出效果并有結(jié)束后的操作 */

輸入金額大寫顯示

通過代理方法實(shí)現(xiàn),每輸入一個(gè)數(shù)字就替代成一個(gè)對(duì)應(yīng)的中文漢字。

返回程序彈出密碼框

返回程序彈出密碼框 參考巧哥(唐巧)的返回程序彈出密碼框

在appDelegate里的applicationDidEnterBackground 方法中調(diào)用 [[PasswordInputWindow sharedInstance] show];

會(huì)創(chuàng)建一個(gè)window的單列對(duì)象,并在show方法里讓其成為主window 因此會(huì)在所有圖層的上方,而UIWindow繼承UIView,可在創(chuàng)建時(shí)進(jìn)行初始化設(shè)置

文件管理器

仿寫HYFileManager HYFileManager 附帶詳解

  • 沙盒目錄相關(guān)

主目錄,tmp目錄路徑可直接獲取 libraryDir通過NSSearchPathForDirectoriesInDomains Library / Preferences的目錄通過libraryDir拼接 Library / Caches的目錄通過NSSearch搜索CachesDirectory

NSSearchPathForDirectoriesInDomains 第一個(gè)參數(shù)是哪個(gè)目錄 第二個(gè)參數(shù)是搜索誰的 第三個(gè)參數(shù) ' ~ ' 路徑是否展開 ' ~ ' 路徑是詳細(xì)路徑前半段直接隱藏用' ~ '顯示

  • 遍歷文件夾

通過FileManager的subpathsOfDirectoryAtPath:error:深遍歷路徑 通過FileManager的contentsOfDirectoryAtPath:error:淺遍歷路徑

  • 獲取文件屬性

先通過FileManager的attributesOfItemAtPath:error:獲取路徑下文件屬性集合,而后通過key取出某個(gè)屬性

  • 創(chuàng)建文件(夾)

創(chuàng)建文件夾:通過fileManager的createDirectoryAtPath:withIntermediateDirectories:attributes:error:

createDirectoryAtPath:withIntermediateDirectories:attributes:error: 第一個(gè)參數(shù)代表文件夾路徑 第二個(gè)參數(shù)代表是否允許創(chuàng)建中間目錄 第三個(gè)參數(shù)代表設(shè)置,如訪問權(quán)限、所屬用戶/用戶組。nil代表選擇系統(tǒng)默認(rèn)設(shè)置。 第四個(gè)參數(shù)代表錯(cuò)誤信息

創(chuàng)建文件:通過fileManager的createFileAtPath:contents:attributes: 如果文件夾路徑不存在,則先創(chuàng)建文件夾。通過自定義方法directoryAtPath判斷 如果創(chuàng)建失敗返回NO,沒有錯(cuò)誤信息 如果文件存在但不想復(fù)寫則返回YES 先創(chuàng)建文件,而后判斷是否寫入內(nèi)容 content代表寫入的內(nèi)容,如果有則寫入

獲取文件修改時(shí)間、創(chuàng)建時(shí)間則先獲取文件的所有屬性 通過KeyNSFileModificationDate(修改) NSFileCreationDate(創(chuàng)建) 獲取到所需的修改時(shí)間、創(chuàng)建時(shí)間

  • 刪除文件(夾)

刪除文件/文件夾 通過fileManager的removeItemAtPath:error:直接刪除這個(gè)路徑文件/文件夾

清空Caches文件夾: 先淺遍歷cache文件夾,獲取其下所有文件與目錄 而后拼接在cache路徑后,通過自定義方法removeItemAtPath:移除 讓一個(gè)BOOL值為YES的isSuccess &= 移除后的結(jié)果值 則有一個(gè)移除錯(cuò)誤就會(huì)為NO

清空tmp文件夾同上

  • 復(fù)制文件(夾)

復(fù)制文件/文件夾 先要保證源文件路徑存在,不然通過NSException拋出異常 而后獲取路徑上的文件夾,如果文件夾路徑不存在則創(chuàng)建文件夾路徑,創(chuàng)建失敗直接返回NO 而后判斷是否允許重寫,如果允許重寫且文件存在則先刪掉要重寫的文件

調(diào)用fileManager的copyItemAtPath:toPath:error:復(fù)制文件

  • 移動(dòng)文件(夾)

同復(fù)制文件夾,只是移動(dòng)時(shí)若文件存在且不允許重寫則把源文件移除而后返回YES 如果文件存在且允許重寫則移除要重寫的文件而后移動(dòng)源文件

調(diào)用fileManager的moveItemAtPath:toPath:error:移動(dòng)源文件

  • 根據(jù)URL獲取文件名

根據(jù)文件路徑獲取文件名稱,是否需要后綴 直接通過字符串的lastPathComponent方法獲取文件名稱 若不需要后綴則通過stringByDeletingPathExtension刪除掉后綴

獲取文件所在的文件夾路徑 直接通過字符串的stringByDeletingLastPathComponent刪除最后一個(gè)目錄 也就是最后一個(gè)' / '之后的內(nèi)容包括' / '

根據(jù)文件路徑獲取文件擴(kuò)展類型 直接通過字符串的pathExtension獲取擴(kuò)展名 會(huì)從最后面截取' . '之后的內(nèi)容

  • 判斷文件(夾)是否存在

判斷文件路徑是否存在直接通過fileManager的fileExistsAtPath:方法判斷

判斷路徑是否為空(判斷條件是文件大小為0, 或者是文件夾下沒有子文件) 目標(biāo)路徑是一個(gè)文件并且文件大小是0 或 目標(biāo)路徑是一個(gè)文件夾并且文件夾下沒有子文件

判斷目錄是否是文件夾,通過文件屬性NSFileType得值是否為NSFileTypeDirectory

判斷目錄是否是文件,通過文件屬性NSFileType得值是否為NSFileTypeRegular

可執(zhí)行、可讀、可寫通過fileManager的isExecutableFileAtPath、 isReadableFileAtPath、isWritableFileAtPath判斷

  • 獲取文件(夾)大小

獲取文件/目錄大小 通過屬性的key值NSFileSize獲取 只是獲取文件大小時(shí),若目標(biāo)路徑不是文件則返回nil

獲取文件夾大小時(shí)先判斷路徑是否為文件夾,不是則返回nil 而后獲取文件夾的目錄大小,再深遍歷文件夾累加目錄和文件、子文件夾大小

  • 寫入文件內(nèi)容

寫入文件內(nèi)容時(shí),如果文件不存在就異常警告并返回NO 如果文件路徑不存在則返回NO 如果文件存在,路徑存在就根據(jù)文件所屬類型轉(zhuǎn)換并寫入 (不轉(zhuǎn)換就是NSObject類型無法調(diào)用write方法) atomically是否允許持續(xù)寫入 其中JSON格式轉(zhuǎn)變?yōu)樽值漕愋?UIImage格式通過UIImagePNGRepresentation轉(zhuǎn)變?yōu)镹SData類型 NSCoding類型通過[NSKeyedArchiver archiveRootObject:content toFile:path] 如果類型都不對(duì)則異常提示并返回NO

  • private methods

轉(zhuǎn)換錯(cuò)誤信息,如果錯(cuò)誤信息為空則返回YES。不過沒有用到 //轉(zhuǎn)換大小格式,顯示如:2KB 或4.26MB 或1002.25GB

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評(píng)論 6 535
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,744評(píng)論 3 421
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,879評(píng)論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,935評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,325評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評(píng)論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,534評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,084評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,892評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,067評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,322評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評(píng)論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評(píng)論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,800評(píng)論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,084評(píng)論 2 375

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