1. 程式人生 > >iOS 開發顯示文件的兩種方法

iOS 開發顯示文件的兩種方法

在本篇文章中,介紹開啟檔案的兩種方法:

一.利用UIWebView

     使用UIWebView物件顯示文件時在iOS中使用最多的解決方案。  

//開啟PDF文件

    [selfopenFile:@"PDF_SEHistory.pdf"type:@"pdf"];

//開啟word文件

    [selfopenFile:@"file.doc"type:@"msword"];


其中第一個引數為檔名,需包含字尾;第二個引數為對應檔案型別的MIMEType

-(void)openFile:(NSString *)fileName type:(NSString *)type

{

       NSString

*filePath = [[NSBundlemainBundle] pathForResource:fileNameofType:nil];

       NSData *fileData = [[NSDataalloc] initWithContentsOfFile:filePath];

        [self.webViewloadData:fileData MIMEType:[NSStringstringWithFormat:@"application/%@",type]textEncodingName:@"UTF-8"baseURL:nil];

}


常見檔案的MIMEType:

 MIMEType                         extension

 application/msword                  doc

 application/pdf                     pdf

 application/vnd.ms-powerpoint       ppt

 image/jpeg                          jpg/jpeg/jpe

 image/gif                           gif

 text/plain                          txt

 video/mpeg                          mpeg

 audio/mpeg                          mp3

 更多MIMEType

二.利用QuickLook框架

QuickLook支援許多文件格式的顯示,例如Microsoft Word,Excel和PowerPoint。

在開啟檔案的類中需啊喲匯入QuickLook框架的標頭檔案:#import<QuickLook/QuickLook.h>,並使這個類遵從QLPreviewControllerDataSource 和QLPreviewControllerDelegate協議。

#pragma mark - QLPreviewControllerDelegate

-(NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller

{

return1;//返回需要開啟文件的數目,這裡我們只打開一個文件,所以返回1

}

#pragma mark - QLPreviewControllerDataSource

-(id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index

{

NSString *path = [[NSBundlemainBundle] pathForResource:@"PDF_SEHistory"ofType:@"pdf"];

return [NSURLfileURLWithPath:path];//返回一個通過NSURL構造的QLPreviewItem物件

}


[selfpresentViewController:self.previewContrilleranimated:YEScompletion:nil];


使用QuickLook框架需要注意的是,當QLPreviewItem正在顯示的時候,這個框架會在導航控制器會在導航控制中自動建立一個按鈕,以允許使用者通過Email傳送和列印這個文件。

三.兩者的區別 

   UIWebView顯示文件非常消耗記憶體,當應用執行記憶體不足時,可能會導致崩潰。

iOS 技術交流群:488530658

相關推薦

iOS 開發顯示方法

在本篇文章中,介紹開啟檔案的兩種方法: 一.利用UIWebView      使用UIWebView物件顯示文件時在iOS中使用最多的解決方案。   //開啟PDF文件     [selfopenFile:@"PDF_SEHistory.pdf"type:@"pdf"

【Qt開發】Qt中顯示影象的方法對比

在Qt中處理圖片一般都要用到QImage類,但是QImage的物件不能夠直接顯示出來,要想能看到圖片,初步發現有兩種方法。 一、QImage轉QPixmap,然後用QLabel::setPixmap() image=new QImage("D:/Temp/XX.jpg

日期(方法,牛客)

//兩種方法,第一種是我自己的複雜無腦版,第二種是大神的方法 //@第一種: /* 思路:每一個日期都檢驗一次(沒第二種方法好) */ #include<bits/stdc++.h> #define ll long long using namespace std; int

日期(方法,牛客)

main mes 答案 約會 會有 style turn 回文 之間 //兩種方法,第一種是我自己的復雜無腦版,第二種是大神的方法 //@第一種: /* 思路:每一個日期都檢驗一次(沒第二種方法好) */ #include<bits/stdc++.h&g

myabtis入門級03——mybatis開發dao層的方法

一、先來談談SqlSession的適用範圍 通過SqlSessionFactoryBuilder建立會話工廠SqlSessionFactory。 將SqlSessionFactoryBuilder當成一個工具類使用即可,不需要使用單例管理SqlSessionFactoryBu

python 讀取並顯示圖片的方法

在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 這兩個庫操作圖片。 原文地址 一、matplotlib 1. 顯示圖片 import matplotlib.pyplot as plt # plt 用於顯示圖片 import mat

java判斷迴方法

第一種:面向過程:從字串Str.length()/2開始向兩端移動進行對比 ,boolean用來確定一個返回值判斷是否迴文Scanner input = new Scanner(System.in); try{ System.out.println("Enter a

OpenCV在Qt中顯示視訊的方法

參考:http://blog.csdn.net/augusdi/article/details/8865541 程式碼如下: 注意,要在ui介面上放置一個“Vertical Layout”控制元件,調整到合適大小 #include <QtWidgets/QMainWi

判斷字串是不是迴方法

方法一:用棧存取前半截數,然後與後半截挨個比較。 #include<stdlib.h> #include<stdio.h> #include<string.h> int main(int argc,char* argv[]) { ch

IOS延長啟動畫面的方法

1. 在ViewController的viewDidLoad方法裡延時。 @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //[NSThread slee

WinForm顯示窗體的方法

Form.Show() 無模式窗體 form.Modal=false Form.ShowDialog() 模式窗體form.Modal =true (注:modal屬性只有在窗體load事件中或者之後才可以查出,窗體建立之前時無法得知此案時方式的,因此在窗體建構函式中Mo

DataGridView顯示資料的方法

1.簡單介紹   DataGridView空間是我們常用的顯示資料的控制元件,它有極高的可配置性和可擴充套件性。 2.顯示資料   DataGridView顯示資料一般我們常用的有兩種方法,一種是直接

ios 跳轉AppStore的方法,以及遇到的坑

  iOS跳轉appStore的兩種方法網上已經有很多的部落格進行講解了,主要是app內跳轉相關網頁,和跳出app,跳轉到AppStore。相關的部落格大家可以參看參考部落格 為了防止參考部落格實效,我把相關程式碼copy了一下,希望大家不要介意。 1,

IOS自帶Email的方法

IOS系統框架提供的兩種傳送Email的方法:openURL 和 MFMailComposeViewController。藉助這兩個方法,我們可以輕鬆的在應用里加入如使用者反饋這類需要傳送郵件的功能。 1.openURL 使用openURL呼叫系統郵箱客戶端是我們在

iOS 刪除UITableView 行的方法

大家都知道,刪除行時table會呼叫其Data Source方法: - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPat

python實現讀取並顯示圖片的方法(轉載)

在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 這兩個庫操作圖片。本人偏愛 matpoltlib,因為它的語法更像 matlab。 一、matplotlib 1. 顯示圖片 1 2 3 4

使用Python生成源方法

mob zhang mod pri tid 串接 數字 能夠 package 利用Python的字符串處理模塊,開發者能夠編寫腳本用來生成那些格式同樣的C、C++、JAVA源程序、頭文件和測試文件,從而避免大量的反復工作。本文概述兩種利用Python string類生成

oracle rename數據方法

ati oar online 技術 off target pen 分類 alt oracle rename數據文件的兩種方法 2012-12-11 20:44 10925人閱讀 評論(0) 收藏 舉報 分類: oracle(98) 版權聲明:本文為博主原創

自制按鈕圖標的方法: image sprite和svg字體

輸出 圖標 int uil pac 設置 定制 方法 ets 用image sprite和svg字體文件這兩種方法,都能夠極大地減少小圖形文件的數量, 從而減少服務器請求和帶寬需求。提高網頁的響應速度。 一、建立SVG字體文件 iconmoon 是一個在線工具,可以上傳

node服務器中打開html方法

lse line targe edi not ref code tex fs模塊 方法1:利用 Express 托管靜態文件,詳情查看這裏 方法2:使用fs模塊提供的readFile方法打開文件,讓其以text/html的形式輸出。 代碼: var express = r