Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 目标c:将一个对象相乘_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone 目标c:将一个对象相乘

Iphone 目标c:将一个对象相乘,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,这是一个关于目标编程基本原理的初学者问题(至少我认为是这样): 我有一个UIView,并希望通过编程方式在此UIView中添加几个按钮。有多少按钮取决于用户输入 每个按钮都有四个特点: 其编号(例如按钮编号1、2、3等) 其标题(例如,单击此处、单击此处、单击我等) 其位置和大小(即CGRect-大小保持不变,只有y-位置需要更改) 其颜色(如红色、绿色、蓝色等) 现在我想我可以通过创建一个方法来创建一个按钮,但我不能完全确定这是否是一个非常合理的方法。我觉得我应该创造一个对象。如果您能帮我解决

这是一个关于目标编程基本原理的初学者问题(至少我认为是这样):

我有一个UIView,并希望通过编程方式在此UIView中添加几个按钮。有多少按钮取决于用户输入

每个按钮都有四个特点:

  • 其编号(例如按钮编号1、2、3等)
  • 其标题(例如,单击此处、单击此处、单击我等)
  • 其位置和大小(即CGRect-大小保持不变,只有y-位置需要更改)
  • 其颜色(如红色、绿色、蓝色等)
  • 现在我想我可以通过创建一个方法来创建一个按钮,但我不能完全确定这是否是一个非常合理的方法。我觉得我应该创造一个对象。如果您能帮我解决这个问题,我将不胜感激。以下是我的尝试——其中充满了错误(例如,我不确定如何创建button1、button2等——因此出现了button[bNumber]一词):

    然后,我想通过调用以下命令将对象“相乘”三次:

    for (temp = 0; temp < 2; temp++) {
    [self createIndexButtonWithNumber:temp withTitle:[@"Test%i", temp] atPosition:10 withColour:1];}
    
    for(温度=0;温度<2;温度++){
    [self-createIndexButtonWithNumber:temp withTitle:[@“测试%i”,temp]位置:10,颜色:1];]
    

    我相信这一切都有点问题、错误和笨拙,因此我非常感谢任何关于如何解决这一问题的建议。

    下面是我编写的一个简单示例,它在一行中垂直创建了5个按钮。这里唯一额外的东西是标签,如果您需要的话,它将用于以后引用按钮

    我还建议阅读一些更面向对象的程序示例

    float buttonPadding = 20;
    float buttonWidth = 80;
    float buttonHeight = 40;
    for (int k=0;k<5;k++)
    {
        UIButton* btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btn.tag = 1000 + k;
        btn.frame = CGRectMake(0, k*(buttonPadding+buttonHeight), buttonWidth, buttonHeight);
        [btn setTitle:[NSString stringWithFormat:@"Button %i", k+1] forState:UIControlStateNormal];
        [self.view addSubview:btn];
    }
    
    float按钮添加=20;
    浮动按钮宽度=80;
    浮动按钮高度=40;
    
    对于(int k=0;k,我写了一个简单的例子,它在一行中垂直创建了5个按钮。其中唯一额外的是标记,如果需要,它将用于以后引用按钮

    我还建议阅读一些更面向对象的程序示例

    float buttonPadding = 20;
    float buttonWidth = 80;
    float buttonHeight = 40;
    for (int k=0;k<5;k++)
    {
        UIButton* btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btn.tag = 1000 + k;
        btn.frame = CGRectMake(0, k*(buttonPadding+buttonHeight), buttonWidth, buttonHeight);
        [btn setTitle:[NSString stringWithFormat:@"Button %i", k+1] forState:UIControlStateNormal];
        [self.view addSubview:btn];
    }
    
    float按钮添加=20;
    浮动按钮宽度=80;
    浮动按钮高度=40;
    对于(intk=0;k我想参考

  • 您应该仅使用方法创建按钮

  • 第二,没有按钮颜色。您可以使用方法为标题设置颜色

  • 您的代码中只存在语法错误(
    UIButton.text
    等)。您不能执行此类调用。
    UIButton
    是一个类

  • 您在
  • 中调用createIndexButtonWithNumber…将按钮放置在相同的位置-
    atPosition
    输入参数没有变化

  • NSInteger
    变量不是指针-
    *
    不需要

  • 在奋斗的最后,我们有这样的smth:

    -(void)createIndexButtonWithNumber:(NSInteger)bNumber
    //(很抱歉,代码格式有一些问题)

    和的呼叫:

    for (int temp = 0; temp < 2; temp++) {
        [self createIndexButtonWithNumber:temp withTitle:[@"Test%i", temp] atPosition:30 * temp withColour:1];
    }
    
    我想提及

  • 您应该仅使用方法创建按钮

  • 第二,没有按钮颜色。您可以使用方法为标题设置颜色

  • 您的代码中只存在语法错误(
    UIButton.text
    等)。您不能执行此类调用。
    UIButton
    是一个类

  • 您在的中调用createIndexButtonWithNumber…将按钮放置在相同的位置-
    atPosition
    输入参数没有变化

  • NSInteger
    变量不是指针-
    *
    不需要

  • 在奋斗的最后,我们有这样的smth:

    -(void)createIndexButtonWithNumber:(NSInteger)bNumber
    //(很抱歉,代码格式有一些问题)

    和的呼叫:

    for (int temp = 0; temp < 2; temp++) {
        [self createIndexButtonWithNumber:temp withTitle:[@"Test%i", temp] atPosition:30 * temp withColour:1];
    }
    

    对不起,如果你用这种方法相乘,按钮不是会完全相同吗?如果是这样,你可以将它们添加到一个数组中,这样它们就会得到完全相同的待遇。如果这是一个主题,请回答:SExcuse me,但是如果你用这种方法相乘,按钮不是会完全相同吗?如果是这样,你可以将它们添加到一个数组中,这样它们就会得到同样的待遇完全一样。如果这是主题:谢谢!这比我尝试的更有意义…看例子是一回事--应用它们并将你所看到的付诸实践是另一回事。非常感谢你的帮助。谢谢!这比我尝试的更有意义…看例子是一回事--应用把你所看到的东西付诸实践是另一回事。非常感谢你的帮助。非常感谢!特别是关于文件的参考-我现在正在阅读。但是我不得不说我更喜欢你的解释。再次感谢。只是一个跟进问题:我正试着给每个b分配相同的方法这是我的方法的样子:
    -(void)indexAction:(int*)buttonTag
    ,这是我试图将此方法分配给每个按钮的方式:
    操作:@selector([self indexAction:k])
    (k是我在createIndexButton方法中分配的int。。。[自索引:k]不起作用。请仔细查看更新。并阅读一些obj-c/cocoa书籍!:)非常感谢!特别是关于对文档的引用-我现在正在阅读。但是我必须说我更喜欢你的解释。再次感谢。只是一个后续问题:我试图为每个按钮指定相同的方法,但希望向该方法发送一个变量。我的方法看起来是这样的:
    -(void)indexAction:(int*)按钮Tag
    这就是我试图将此方法分配给每个按钮的方式:
    操作:@selector([self indexAction:k])
    (k是我在createIndexButton方法中分配的一个int…[self indexAction:k]不起作用。请仔细查看
    -(void)indexAction:(id)sender {
        NSLog(@"Button with tag %d is pressed", ((UIButton *)sender).tag);
    }