在開始這篇教程之前,你應該預先閱讀並按下面的這篇教程實際操作過:
- iOS開發指南(4)::在iOS應用程序中使用不同風格的Button組件
這篇教程涵蓋了下面常用的任務:在iOS應用程序中如何使用照片。
這些功能由Actions提供,你只需要爲每個任務編寫一句代碼。
一個Action綁定一個或多個用戶界面元素,例如菜單項,工具欄按鈕,以及其他控件。
Actions提供兩種用途:
- Action可以表示用戶界面元素的通用屬性-例如控件是否啓用,或者CheckBox是否勾選。
- Action可以響應控件觸發的事件-例如當用戶點擊一個按鈕或是選擇一個菜單項。
在這篇教程中,你將會學習到如何將每個你想要支持的功能Action賦給用戶界面元素(例如按鈕)。
爲應用程序建立用戶界面
這個示例程序的用戶界面十分簡單,如下圖所示:
將下面這些組件放在Form Designer上:
- TToolBar組件
- 三個TButton組件。每個按鈕使用不同的圖標。
- 爲這三個按鈕分別設置它們的StyleLookup屬性爲cameratoolbuttonbordered,searchtoolbuttonbordered,以及actiontoolbuttonbordered。
- TImage組件
- 設置Align屬性爲alClient。
- TActionList組件
使用iOS Device的攝像頭拍照
你可以定義一個Action來使用iOS Device上的攝像頭拍照,通過使用下列步驟:
1.在Form Designer上,選擇用來拍照的那個按鈕。
2.在Object Inspector中,從Action屬性的下拉列表中選擇。
3.選擇New StandardAction|Media Library|TTakePhotoFromCameraAction:
4.在Events頁,展開Action結點,然後雙擊OnDidFinishTaking事件。
5.添加如下代碼到OnDidFinishTaking事件處理過程:
- procedure TForm1.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
- begin
- Image1.Bitmap.Assign(Image);
- end;
procedure TForm1.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
begin
Image1.Bitmap.Assign(Image);
end;
這段代碼將iOS Device攝像頭拍下的照片賦給TImage組件的Bitmap屬性。
使用iOS Device照片庫裏的照片
你可以使用如下步驟定義一個Action來使用照片庫中的照片:
1.在Form Designer上,選擇一個你想要用來選擇照片的按鈕。
2.在Object Inspector中,點擊Action屬性的下拉列表,選擇New StandardAction|Media Library|TTakePhotoFromLibraryAction。
3.在Events頁,展開Action節點,然後雙擊OnDidFinishTaking事件。
4.在OnDidFinishTaking事件處理程序中添加如下代碼:
- procedureTForm1.TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap);
- begin
- Image1.Bitmap.Assign(Image);
- end;
procedureTForm1.TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap);
begin
Image1.Bitmap.Assign(Image);
end;
上面這段代碼將照片庫中的照片賦給TImage組件的Bitmap屬性。
共享或打印照片
在iOS應用中,你可以共享照片到社交網站(例如FaceBook和TWitter)上,你也可以發送照片給打印機,使用照片作爲郵件附件,賦給聯繫人,等等。
這種多共享服務被稱爲Share Sheet Functionality,你可以按照下面的步驟來實現這些功能:
1.在Form Designer上,選擇一個用來共享照片的按鈕。
2.在Object Inspector中,在Action屬性中點擊下拉列表,然後選擇New StandardAction|Media Library|TShowShareSheetAction。
3.在Events頁,展開Action節點,然後雙擊OnBeforeExecute事件。
4.在OnBeforeExecute事件處理過程中添加如下代碼:
- procedureTForm1.ShowShareSheetAction1BeforeExecute(Sender: TObject);
- begin
- ShowShareSheetAction1.Bitmap.Assign(Image1.Bitmap);
- end;
procedureTForm1.ShowShareSheetAction1BeforeExecute(Sender: TObject);
begin
ShowShareSheetAction1.Bitmap.Assign(Image1.Bitmap);
end;
上面這段代碼將TImage組件的照片賦給“Share SheetFunctionality”.
在你在服務列表中選擇FackBook之後,你可以使用你的組件來上傳照片到FaceBook上: