原創(chuàng)|使用教程|編輯:龔雪|2014-05-20 09:15:10.000|閱讀 797 次
概述:本文主要介紹如何使用LEADTOOLS for iOS/OS X創(chuàng)建一個(gè)運(yùn)行于iPhone/ iPad模擬器或iOS設(shè)備上的iOS應(yīng)用程序演示。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
使用LEADTOOLS for iOS/OS X時(shí),根據(jù)以下步驟可以創(chuàng)建一個(gè)運(yùn)行于iPhone/ iPad模擬器或iOS設(shè)備上的iOS應(yīng)用程序演示。
1、啟動(dòng)Xcode應(yīng)用程序??稍谌蝿?wù)欄上找到該圖標(biāo),如下所示:
2、如果任務(wù)欄上沒(méi)有Xcode應(yīng)用程序圖標(biāo),從任務(wù)欄中選擇 "Lanuchpad" ,然后點(diǎn)擊 "Developer" 圖標(biāo),即可啟動(dòng)Xcode。或者你也可以根據(jù)MAC跟蹤器右上角的 "Spotlight",搜索Xcode應(yīng)用程序。
3、在Xcode啟動(dòng)對(duì)話框中單擊Create a new Xcode project按鈕。
4、點(diǎn)擊該按鈕,打開Choose a template for your new project對(duì)話框。通過(guò)該對(duì)話框來(lái)指定項(xiàng)目類型。在 "iOS"模板中選擇 "Application",然后選擇"Single View Application",接著點(diǎn)擊Next。
5、在Choose options for your new project中:在對(duì)話框中,你可以指定項(xiàng)目名稱和選項(xiàng),然后點(diǎn)擊Next。
6、此時(shí),會(huì)出現(xiàn)一個(gè)對(duì)話框,用于指定項(xiàng)目保存的位置。指定位置,然后單擊Finish按鈕來(lái)創(chuàng)建項(xiàng)目。
7、按Command+ B生成項(xiàng)目,或者在Xcode菜單中選擇Product -> Build。
8、在Xcode項(xiàng)目瀏覽器中,選擇并展開 "Frameworks"文件夾,從設(shè)備/模擬器圖片專輯加載圖像。用鼠標(biāo)右鍵單擊它并選擇將文件添加到"ViewerTest"...
9、使用文件瀏覽器對(duì)話框,找到所提取的iOS框架,然后選擇以下框架,并點(diǎn)擊Add:
10、在項(xiàng)目導(dǎo)航中,展開"Supporting Files" 文件夾,然后點(diǎn)擊ViewerTest-Prefix.pch。添加以下#import語(yǔ)句:
11、在項(xiàng)目導(dǎo)航器中點(diǎn)擊ViewerController_iPhone.xib,添加一個(gè)用戶接口至項(xiàng)目。
12、通過(guò)在Library Pane底部的Find Text Box控件中寫入控件名稱,可添加按鈕和查看器控件。選中Xcode應(yīng)用程序的右下角,如下圖所示:
例如:寫入"UIButton" 或 "UIView" 并將其添加至界面生成器。
13、在Identity Inspector面板中,通過(guò)將"Class" 名稱改成"LTImageViewer",從而將 "UIView" 的基本類型改成"LTImageViewer"控件,如下所示:
14、將出口連接添加至界面生成器對(duì)象的"ViewController"類。在 Xcode IDE菜單中選擇View -> Assistant Editor -> Show Assistant Editor以展示助理編輯Assistant Editor。
15、選擇從界面生成器中選擇瀏覽器控件。將出現(xiàn)一個(gè)彈出式對(duì)話框,輸入變量 "imageViewer",然后單擊Connect按鈕。
16、重復(fù)以上步驟,添加Load, Flip 和Invert行為按鈕。
17、在項(xiàng)目導(dǎo)航器,面板中選擇項(xiàng)目根目標(biāo),然后選擇 "Build Settings"選項(xiàng)卡,可將兩個(gè)連接器選項(xiàng) "-lstdc++ -ObjC" 添加至項(xiàng)目生成設(shè)置。在搜索編輯框中,輸入other linker flags過(guò)濾設(shè)置,從而只顯示字段。點(diǎn)擊它,然后添加設(shè)置"-lstdc++ -ObjC"。
18、編譯該項(xiàng)目。
19、打開 "ViewController.h"文件,將以下代碼作為圖像選擇器代理添加至接口聲明:
@interface ViewController : UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate> @property (strong, nonatomic) IBOutlet LTImageViewer *imageViewer; - (IBAction)loadImageFromAlbum:(id)sender; - (IBAction)flipImage:(id)sender; - (IBAction)invertImage:(id)sender; - (void)showError:(NSError*)error; @end
20、打開執(zhí)行文件,添加以下代碼:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { self.imageViewer.image = [info objectForKey:UIImagePickerControllerOriginalImage]; [self dismissViewControllerAnimated:NO completion:nil]; } - (void)showError:(NSError*)error { NSString* str; if(error != nil) str = [NSString stringWithFormat:@"@\nReason@\nDescription: @\nCoded\n", @"Error", [error localizedDescription], [error localizedFailureReason], [error code]]; UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Error" message:str delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; } - (IBAction)loadImageFromAlbum:(id)sender { UIImagePickerController* imagePicker = [[UIImagePickerController alloc] init]; imagePicker.allowsEditing = NO; imagePicker.delegate = self; if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { [[[UIAlertView alloc] initWithTitle:@"Warning" message:@"your device does not allow using PhotoLibrary" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show]; return; } imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:imagePicker animated:YES completion:nil]; } - (IBAction)flipImage:(id)sender { NSError* error = nil; LTRasterImage* rasterImage = [LTRasterImageConverter convertFromImage:self.imageViewer.image options:LTConvertFromImageOptions_None error:&error]; if(rasterImage == nil && error != nil) // error occurred { [self showError:error]; return; } LTFlipCommand* command = [[LTFlipCommand alloc]initWithHorizontal:NO]; BOOL ret = [command run:rasterImage error:&error]; if(ret == NO && error != nil) // error occurred { [self showError:error]; return; } // Put the updated image back into the viewer [self.imageViewer setRasterImage:rasterImage]; } - (IBAction)invertImage:(id)sender { NSError* error = nil; LTRasterImage* rasterImage = [LTRasterImageConverter convertFromImage:self.imageViewer.image options:LTConvertFromImageOptions_None error:&error]; if(rasterImage == nil && error != nil) // error occurred { [self showError:error]; return; } LTInvertCommand* command = [[LTInvertCommand alloc]init]; BOOL ret = [command run:rasterImage error:&error]; if(ret == NO && error != nil) // error occurred { [self showError:error]; return; } // Put the updated image back into the viewer [self.imageViewer setRasterImage:rasterImage]; }
21、運(yùn)行demo。
22、點(diǎn)擊Load,從照片庫(kù)中選擇一個(gè)圖像。圖像預(yù)覽效果如下:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn