iOS學習 - 23 載入本地 txt文件,NSMutableParagraphStyle 段落格式,縮放動畫

来源:http://www.cnblogs.com/asamu/archive/2016/09/20/5887989.html
-Advertisement-
Play Games

思路: 1.new 一個 Empty 尾碼為 .txt 文件,內容隨筆拷貝一段 2.用 NSString 接收本地文件,再用一個標題拼接字元串 3.創建一個 NSMutableParagraphStyle 實例,設置標題居中、標題距離正文間隔 4.創建一個 NSMutableParagraphSty ...


思路:

  1.new 一個 Empty 尾碼為 .txt 文件,內容隨筆拷貝一段

  2.用 NSString 接收本地文件,再用一個標題拼接字元串

  3.創建一個 NSMutableParagraphStyle 實例,設置標題居中、標題距離正文間隔

  4.創建一個 NSMutableParagraphStyle 實例,設置正文左對齊、每段開頭縮進 10

  5.創建一個基礎動畫的實例,用代理監聽動畫結束

話不多說上代碼

#pragma mark -- 拼接字元
- (void)loadData:(NSString *)filename {
    
    //第一個段落
    NSMutableParagraphStyle *first = [[NSMutableParagraphStyle alloc]init];
    first.alignment = NSTextAlignmentCenter;
    first.lineSpacing = 10;
    
    //第二個段落
    NSMutableParagraphStyle *second = [[NSMutableParagraphStyle alloc]init];
    //從左開始寫
    second.alignment = NSTextAlignmentLeft;
    //首行縮進
    second.firstLineHeadIndent = 10;
    //間距
    second.lineSpacing = 10;
    
    UIFont *titleFont = [UIFont systemFontOfSize:16];
    UIFont *contextFont = [UIFont systemFontOfSize:13];
    
    NSMutableAttributedString *str1 = [[NSMutableAttributedString alloc]initWithString:@"游戲許可及服務協議" attributes:@{NSParagraphStyleAttributeName:first,NSFontAttributeName:titleFont}];
    
    //標題拼接正文,正文前加換行符
    NSString *str = [NSString stringWithFormat:@"\n%@",filename];
    
    NSMutableAttributedString *str2 = [[NSMutableAttributedString alloc]initWithString:str attributes:@{NSParagraphStyleAttributeName:second,NSFontAttributeName:contextFont}];
    
    [str1 appendAttributedString:str2];
    _textView.attributedText = str1;
}

#pragma mark -- 關閉動畫
- (void)closeAniamtion:(UIView *)view {
    CABasicAnimation *animation = [CABasicAnimation animation];
    animation.keyPath = @"transform.scale";
    animation.toValue = @0.9;
    animation.duration = 0.4;
    animation.delegate = self;
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
    [view.layer addAnimation:animation forKey:@"closeAnimation"];
}

#pragma mark -- 本地 txt 文件內容
- (NSString *)filename {
    //本地 txt 文件
    NSString *path = [[NSBundle mainBundle]pathForResource:@"淺遇時光,靜好無恙.txt" ofType:nil];
    //取出內容
    NSString *filename = [[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    return filename;
}
#pragma mark -- 代理監聽動畫停止
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {

    if ([_bgView.layer animationForKey:@"closeAnimation"] == anim) {
        [_bgView removeFromSuperview];
    }
}

完整代碼在 github 上,點我下載


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 2014.7版本 ADT Bundle http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.ziphttp://dl.google.com/android/adt/adt-bundle-windows-x86_64-201 ...
  • ➠更多技術乾貨請戳:聽雲博客 0x01 iOS體系架構 1.1 iOS 系統的整體體系架構 用戶體驗( The User Experience layer ):SpringBoard 同時支持 Spotlight。 應用軟體開發框架(The Application Frameworks layer) ...
  • 當應用不再使用時,通常需要關閉應用,可以使用以下三種方法關閉android應用: 第一種方法:首先獲取當前進程的id,然後殺死該進程。android.os.Process.killProcess(android.os.Process.myPid()) 接下來實踐一下: 添加點擊事件代碼 在點擊按鈕之 ...
  • 操作系統 Windows/MacOSX/Linux 編程語言 Java HTML/JS (Hybrid/Web App) C/C++ (NDK) SQL (DB) Kotlin 開發工具 IDE Android Studio Eclipse 調試工具 網路調試 Charles Wireshark F ...
  • 一、問題 使用cocoapods搜索某些庫時,搜索到的版本低於Github上面的版本,這樣會導致一些問題。例如我在使用一個LTNavigationBar這個庫時,在我升級到iOS10的時候,會導致導航欄有些內容顯出不出來,在最新的LTNavigationBar版本上已經修複這個問題。但是我使用coc ...
  • 現在在蘋果的官網上,我們已經可以下載到Xcode8的GM版本了,加上9.14日凌晨,蘋果就要正式推出iOS10系統的推送了,在此之際,iOS10的適配已經迫在眉睫啦,不知道Xcode8 beat版本,童鞋們有木有下載過來試試呢?就我的使用來說,總體覺得蘋果還是坑不斷,但是也在一直進步的啦。下麵我就來 ...
  • 一個react-native的下拉框組件,支持安卓和iOS。 ...
  • 首先看效果圖: 1.Bundle類的作用 Bundle類用作攜帶數據,它類似於Map,用於存放key-value名值對形式的值。相對於Map,它提供了各種常用類型的putXxx()/getXxx()方法,如:putString()/getString()和putInt()/getInt(),putX ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...