如何在 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 帖子:
2。手动放置的视图
如果您知道您将只有一定数量的宾果“插槽”或“方块”,则此技术将起作用。您可以在代码、情节提要或 xib 中创建它。
3。自定义绘图/布局
我会提倡这种技术,因为它具有灵活性。您可以传递您需要的宾果游戏块的数量,然后使用类似平块的外观或按钮样式UIButtonTypeCustom
构建UIButtons
。另一种自定义绘制方式是使用 CoreGraphics 进行绘制。但是,这不利于清除来自 UIButton
的操作,并且需要您重新实现触摸方法。
结论
如果您可以计算出项目间的间距,我会尝试使用集合视图,或者我会使用代码中布局的计算视图,或者如果您有固定数量的项目然后布局在情节提要中什么的。
【讨论】:
我不是 C++ 编码方面的专家,这就是我选择集合视图的原因。正如您所说,间距不起作用,我希望单元格中的数据显示从列表中随机选择的字符串而不重复。我假设代码是最好的选择,我不知道它到底是什么文件,或者如何真正制作一个板。 语言实际上是Objective-C。如果您在GitHub 上发布您的代码,我会尝试查看它并给您一些建议/代码。顺便说一句,如果你是新的 ***,你可能想看看about page。如果没有,请不要担心。 感谢您的所有帮助。我在 UICollectionViewControllers 上找到了一个很好的教程,并将它与我正在做的事情整合在一起。 youtube.com/watch?v=i9eFo2fRCdU 在我在这里发帖之前,我应该在 youtube 上搜索更长的时间。以上是关于如何在 xcode 中制作宾果板? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章