如何在 xcode 中制作宾果板? [关闭]

Posted

技术标签:

【中文标题】如何在 xcode 中制作宾果板? [关闭]【英文标题】:How do I make a bingo board in xcode? [closed] 【发布时间】:2013-10-12 20:18:58 【问题描述】:

在我正在为 iPhone 开发的游戏中,我想创建一个宾果板,您可以在其中单击一个点,然后打开相机。我把相机部分放下了,但我正在制作电路板。我认为包含 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

【问题讨论】:

集合视图可能是一个解决方案。但这可能取决于您真正想要实现的目标。如果您不发布代码,“屏幕上什么都没有出现”很难解决。 太宽泛,要求代码而不显示您尝试过的内容:“有关您编写的代码问题的问题必须描述具体问题 - 并包括有效的代码来重现它 - 在问题本身。请参阅SSCCE.org 寻求指导。” 【参考方案1】:

我认为您的宾果板可能会更好地使用多个视图或自定义绘图来实现。我个人会选择自定义绘图,因为我在那里很舒服。关于您的集合视图想法,它可能不是最好的唯一原因是因为对项目间间距的控制较少。根据我的经验,很难让这些物品立即放在彼此之间。我会沿着每条可能的路线走下去,给你我的 2 美分:

1。集合视图

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

how do you determine spacing between cells in UICollectionView flowLayout ios UICollectionView separation on top / bottom between cells Cell spacing in UICollectionView

2。手动放置的视图

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

3。自定义绘图/布局

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

结论

如果您可以计算出项目间的间距,我会尝试使用集合视图,或者我会使用代码中布局的计算视图,或者如果您有固定数量的项目然后布局在情节提要中什么的。

【讨论】:

我不是 C++ 编码方面的专家,这就是我选择集合视图的原因。正如您所说,间距不起作用,我希望单元格中的数据显示从列表中随机选择的字符串而不重复。我假设代码是最好的选择,我不知道它到底是什么文件,或者如何真正制作一个板。 语言实际上是Objective-C。如果您在GitHub 上发布您的代码,我会尝试查看它并给您一些建议/代码。顺便说一句,如果你是新的 ***,你可能想看看about page。如果没有,请不要担心。 感谢您的所有帮助。我在 UICollectionViewControllers 上找到了一个很好的教程,并将它与我正在做的事情整合在一起。 youtube.com/watch?v=i9eFo2fRCdU 在我在这里发帖之前,我应该在 youtube 上搜索更长的时间。

以上是关于如何在 xcode 中制作宾果板? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将按钮和图像放入 UIScrollView [关闭]

如何保存游戏数据[关闭]

如何在 Xcode 中制作关于音频的按钮?

如何在 swift 中制作动画(xcode 6 beta)

如何在 swift 中呈现自定义模式 [关闭]

如何在 Xcode 5 中制作隐形按钮?