-2

在我正在为 iPhone 开发的游戏中,我想创建一个宾果板,您可以在其中单击一个点,然后打开相机。我把相机部分放下了,但我正在制作电路板。我认为包含 25 个项目的集合视图适用于网格,但是当应用程序运行时屏幕上什么也没有出现。有没有更好的方法来制作桌子?

视图控制器.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. 收藏视图

对布置完美对齐的网格进行一些研究。您可能需要自定义布局或更改集合视图 inset 和/或minimumInteritemSpacing. 请参阅以下 SO 帖子:

2. 手动放置的视图

如果您知道您将只有一定数量的宾果“插槽”或​​“方块”,则此技术将起作用。您可以在代码、情节提要或 xib 中创建它。

3.自定义绘图/布局

由于它的灵活性,我会提倡这种技术。您可以传递您需要的宾果游戏块的数量,然后使用UIButtons类似平块的外观或按钮样式构建UIButtonTypeCustom。另一种自定义绘制方式是使用 CoreGraphics 进行绘制。但是,这不利于清除来自 a 的操作UIButton,并且需要您重新实现触摸方法。

结论

如果您可以计算出项目间的间距,我会尝试使用集合视图,或者我会使用在代码中布置的计算视图,或者如果您有固定数量的项目然后布置在故事板或其他东西中。

于 2013-10-12T20:40:48.240 回答