编写此代码的最佳方式...(简单代码,许多按钮)

时间:2011-05-26 20:33:31

标签: iphone coding-style system

我有一个供用户购买产品的系统。它们有许多不同的产品,它相当于ipad屏幕上的大约80个按钮。它是基本的,它们只是在按钮上有产品名称。

我开始编写一个按钮

NSString *PriceString = TextView.text;
NSString *Final = [PriceString stringByAppendingString:@"\n Clothes Item 1   £20.00"];
TextView.text = Final;
TotalPrice += 20;

这个应用程序需要做的就是生成一个包含名称和价格的文本文件,然后将价格添加到总计中。我可以做到这一点,但我不喜欢有80个ibactions。那么,我能在最短的时间内完成这项工作的最佳方式是什么?而不是80个独立的IBTION?

谢谢!

3 个答案:

答案 0 :(得分:2)

创建一个IBAction方法,用于检查tag(按钮)的sender属性。将方法指定为每个按钮的操作(例如,触地)。给每个按钮一个唯一的标签,比如说按钮标签/价格来自的数组索引(例如)。

-(IBAction)buttonPress:(id)sender
{
    UIButton *b = (UIButton *)sender;
    int tag = b.tag;
    // Use tag to know which button was pressed
    ...
}

因此,按下按钮的逻辑在一个方法中,按钮本身有一个唯一标识它的标记。

答案 1 :(得分:0)

考虑创建UIButton子类并将产品按钮“附加”到内部按钮本身 - 这样您就可以对所有按钮执行1个操作,并且在操作处理程序中从发送操作的按钮获取产品。

您的界面类似于:

@interface MyProductButton : UIButton{
   Product *product;
}

@property (nonatomic, retain) Product *product;
- (id)initWithFrame:(CGRect)frame product:(Product*)product;
...
@end

答案 2 :(得分:0)

您需要在代码中创建按钮,而不是使用Interface Builder。而不是为每个按钮设置方法,将数据附加到按钮,然后对每个按钮使用单个操作方法。您可以子类化UIButton并添加数据属性,或者如果您需要存储的只是一个整数(例如,数组索引),则使用UIView的内置标记属性。