-2

私が iPhone 用に開発しているゲームで、スポットの 1 つをクリックするとカメラが開くビンゴ ボードを作成したいと考えています。カメラ部分は伏せていますが、基板製作中です。グリッドには 25 個のアイテムを含むコレクション ビューが機能すると思っていましたが、アプリの実行中に画面に何も表示されません。テーブルを作成するためのより良い方法はありますか?

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    [super viewWillDisappear:animated];
}

- (IBAction)cameraButtonClicked:(id)sender {
    if (![UIImagePickerController isSourceTypeAvailable:(UIImagePickerControllerSourceTypeCamera)]) {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Camera Not Available" message:@"The camera feature isn't available on your device." delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
        [alertView show];
    }else{
        //Show the Image Picker Controller Here
        UIImagePickerController * ipc = [[UIImagePickerController alloc] init];
        ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
        ipc.allowsEditing = NO;
        //Set the Delegate
        ipc.delegate = self;

        [self.navigationController presentViewController:ipc animated:YES completion:nil];
    }
}

#pragma mark ImagePicker Delegate
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self dismissViewControllerAnimated:YES completion:nil];

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    self.imageView.image = image;
}

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [self dismissViewControllerAnimated:YES completion:nil];
}
@end
4

1 に答える 1

1

あなたのビンゴボードは、複数のビューまたはカスタム描画を使用して実装する方がよいと思います。私はそこでかなり快適なので、個人的にカスタム描画を選択します. コレクション ビューのアイデアに関して、それが最適ではない可能性がある唯一の理由は、アイテム間の間隔をあまり制御できないためです。私の経験では、アイテムを互いにすぐに配置することは困難です。可能性のある各ルートをたどって、2セントを差し上げます。

1.コレクションビュー

完全に整列したグリッドをレイアウトするための調査を行います。おそらく、カスタム レイアウトを作成するか、コレクション ビューのインセットおよび / または を変更する必要がありますminimumInteritemSpacing。次の SO 投稿を参照してください。

2.手動で配置されたビュー

このテクニックは、ビンゴの「スロット」または「正方形」の数が決まっていることがわかっている場合に有効です。これは、コード、ストーリーボード、または xib で作成できます。

3.カスタム描画/レイアウト

柔軟性があるため、この手法を推奨します。必要な数のビンゴ タイルを渡してからUIButtons、平らなタイルのような外観またはボタン スタイルでビルドできますUIButtonTypeCustom。もう 1 つのカスタム描画方法は、CoreGraphics を使用して描画することです。ただし、これは a のようなクリーン アクションには適しておらず、UIButtonタッチ メソッドを再実装する必要があります。

結論

アイテム間の間隔を調整できる場合はコレクションビューを使用するか、コードでレイアウトされた計算ビューを使用するか、固定数のアイテムがある場合はストーリーボードなどにレイアウトします。

于 2013-10-12T20:40:48.240 に答える