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