最近のアクセス:
iOS 用 List ユーザーコントロールの作成

ここでは、iOS スマートデバイスのユーザーコントロールの作成方法について説明します。
作成する内容
任意の画像リストから画像ギャラリーを作成します。画像ギャラリーは、元の画像のサムネイル画像で表示され、特定の画像を選択すると、説明が記載されたメッセージとともに元の画像が表示されます。
このページの手順を完了すると、Work With for Smart Devices パターンで使用可能な ImageGallery という新しいユーザーコントロールが完成します。
イメージ:15831.png イメージ:15832.png イメージ:15833.png

ソフトウェア要件

iOS 用ユーザーコントロールを開発するには、次の要件があります。
  • Mac OS X Snow Leopard 以上を実行する Intel ベースの Mac コンピューター
  • XCode

基本的な手順

ユーザーコントロール (基本機能付き) を作成する手順は次のとおりです。
ユーザーコントロールの定義を作成し、GeneXus で使用できることを確認します。

プロジェクトのセットアップ

XCode で、新しい Cocoa Touch Static Library プロジェクトを作成し、そのプロジェクトに UCImageGalleryList という新しいクラスを作成します。
新しいクラスに GXControlGridBase のサブクラスを作成します。これにより、List ユーザーコントロールのほとんどの機能を利用できます。
GitHub から KTPhotoBrowser プロジェクトを入手し、プロジェクトにそのファイルを追加します。
必要なファイルは src/KTPhotoBrowser 内と、src/Flickr+JSONSample/Flickr+JSONSample 内の KTPhotoView+SDWebImage.* および KTThumbView+SDWebImage.* にあります。
ユーザーコントロールが機能するように、このファイルにいくつか変更を加える必要があります。
SD Image Gallery コントロール内で GeneXus ユーザーコントロールの内部実装と競合しないように、SDWebImageManager クラスの名前を SDWebImageManager2 に変更します。必ずプロジェクトをコンパイルし、内部参照を変更する必要があります (検索/置換を使用)。
/Users/MacUserName/Library/Artech/GeneXus にある GXFlexibleClient.framework をプロジェクトに追加します。
プロジェクトに次のクラスを追加します。
  • UCImageGalleryList クラス
  • UCImageGalleryDataSource プロトコル
  • UCImageGalleryDetail クラス
完全なソースコードについては、こちらを参照してください。
次に、KTPhotoBrowser ファイルの KTPhotoBrowserDataSource にいくつか変更を加えて、次のメソッドを追加する必要があります。
- (NSString *)titleForImageAtIndex:(NSInteger)index;
- (NSString *)captionForImageAtIndex:(NSInteger)index;
- (void) presentDetailViewForPhotoAtIndex:(NSUInteger) index;
KTPhotoScrollViewCntroller クラス、iVar を追加します。
UIBarStyle navbarPreviousStyle_
ナビゲーションバーのスタイルを viewWillAppear で設定します (navbarWasTranslucent_ を使って状況を確認し、ナビゲーションバーのスタイルを半透明の黒に設定して、それを viewWillDisappear で前の設定に戻します)。
次のメソッドを追加します。
- (void) presentDetailViewForPhotoAtIndex:(NSUInteger) index;
次の実装を追加します。
- (void) presentDetailViewForPhotoAtIndex:(NSUInteger)index {
     [ self showChrome ] ;
     [ dataSource_ presentDetailViewForPhotoAtIndex:index ] ;
}
KTThumbsViewController クラスを、KTPhotoScrollViewController の iVar navbarPreviousStyle_ を使って同様に繰り返し、変更します (上記を参照)。
iVar を作成します。
UINavigationController *navController;
@synthesize で統合し、次のコードで getter を追加します。
- (UINavigationController *) navController {
    if (self->navController) {
        return self->navController;
    }
    else {
        return  [ self navigationController ] ;
    }
}
次のコントローラーへのすべての参照を
 [ self navigationController ] 
次のコントローラーに置き換えます。
 [ self navController ] 
最後に、必ずプロジェクトをコンパイルします。
新しいターゲットを追加してライブラリーを生成し、.a ファイルとしてコントロールをデプロイします。
ユーザーコントロールに .a ファイルを関連付けると、GeneXus ユーザー コントロール フォルダにコピーして、使用できるようになります。 







サブページ
Created: 14/09/18 03:09 by Admin Last update: 21/05/21 05:25 by Admin
カテゴリ
Powered by GXwiki 3.0