ios - Objective-C UIButton 网格生成

标签 ios objective-c arrays uibutton grid

cocoa 之王 - 我需要帮助!

我正在编写我的第一个应用程序(游戏),并尝试在 Core Frameworks 和 UIKit 中完成所有工作。我的游戏涉及一个由我手动创建的 UIButtons 制成的 5 x 8 板(!)。当我改变一个人的行为时要更新的大量 PItA。我尝试过使用可变数组和 UIButton 生成器,但我对这些东西仍然很糟糕,而且我在让事情正常工作方面非常不成功。

该按钮存储它的状态、值(value)、所有者和来源。我目前有 A、B、C、D、E 重新表示列,1-8 表示行。按钮为 62x62,网格两侧有 1 个像素的边距,按钮之间有 2 个像素的缓冲区和边距。

有人可以帮我从一个我为每个按钮指定标签、值等的类中获得一个不错的小数组生成器,并以编程方式吐出网格吗?

按钮示例:

    -(IBAction) buttonA1:(id)sender {
UIButton *theButton = (UIButton *)sender;
theButton.titleLabel.font = [UIFont fontWithName:@"Gotham Rounded" size:22];
NSString *Title = theButton.titleLabel.text;

if (tapA1 != 1) {

    [theButton  setAlpha:1.0];

    tapSum++;
    tapA1 = 1;

    [theButton setTitle: @"A1" forState: UIControlStateNormal];
    NSLog(@"Press recieved from %@:\n\nSum is %i.\n", Title, tapSum);
    [theButton setBackgroundImage:[UIImage imageNamed:@"red-dot.png"] forState:UIControlStateNormal];



}
else if (tapA1 == 1)
{
    [theButton  setAlpha:0.3];

    tapA1 = 0;
    tapSum--;

    NSLog(@"Press recieved from %@:\n\nSum is %i.\n", Title, tapSum);
}

提前致谢!

最佳答案

好吧,您可以像这样创建一个网格:-

#define WIDTH 62
#define HEIGHT 62
#define PADDING 3
#define NUMBEROFBUTTONSINAROW 8
#define X 100
#define Y 100
#define TOTALBUTTONS 40

NSMutableArray *array = [[NSMutableArray alloc] init];

    for(int i=0 ; i<TOTALBUTTONS;i++)
    {
        UIButton *btnClick = [UIButton buttonWithType:UIButtonTypeCustom];
        [btnClick setImage:[UIImage imageNamed:@"ship.jpg"] forState:UIControlStateNormal];
        [btnClick setFrame:CGRectMake(X+((WIDTH + PADDING) * (i%NUMBEROFBUTTONSINAROW)), Y + (HEIGHT + PADDING)*(i/NUMBEROFBUTTONSINAROW), WIDTH, HEIGHT)];
        [btnClick addTarget:self action:@selector(btnTapped:) forControlEvents:UIControlEventTouchUpInside];
        btnClick.tag=i + 1;
        [self.view addSubview:btnClick];

        [array addObject:btnClick];
    }

最后是按钮操作:-
-(void)btnTapped:(id)sender
{

    NSLog(@"Button Clicked %d",((UIButton *)sender).tag);
}

您可以通过标签值访问按钮。该数组不是必需的。
好吧,如果你喜欢,可以通过数组访问它。

或者,您可以创建一个将所有按钮自定义与其关联的类,并将类对象存储在 Array 中,以便稍后访问它。在这种情况下,按钮实现将在类中。

关于ios - Objective-C UIButton 网格生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15457820/

相关文章:

objective-c - Objective-C 属性的解释

iphone - 关于 UI 旋转手势识别器

ios - open sans 常规字体在 iOS 7 中无法正常工作

ios - 即使在添加约束后,UIScrollview 中的 UIButton 也不会使用 UIScrollView 调整大小

objective-c - 不兼容的指针类型 Xcode

c - C中基于数组的堆栈实现

ios - 如何修复Disqus无效参数“线程”错误?

objective-c - 访问在当前 ViewController 的 Storyboard中创建的标签

c++ - 修改指针中的值很慢?

javascript - 在 Javascript 中按日期对数组数组进行排序