最好的编码方式…简单的编码,很多按钮

问题描述

|| 我有一个供用户购买产品的系统。他们有许多不同的产品,它相当于ipad屏幕上的大约80个按钮。这很基本,按钮上只有产品名称。 我从一个按钮的编码开始
NSString *PriceString = TextView.text;
NSString *Final = [PriceString stringByAppendingString:@\"\\n Clothes Item 1   £20.00\"];
TextView.text = Final;
TotalPrice += 20;
该应用所需要做的就是生成一个带有名称和价格的文本文件,然后将价格添加到总计中。我可以做到这一点,但是我不喜欢有80次动作。那么,如果没有80个单独的IBaction,我将在最短的时间内完成此操作的最佳方法是什么? 谢谢!     

解决方法

创建一个
IBAction
方法,检查
sender
(按钮)的
tag
属性。将方法指定为每个按钮的操作(例如,按下)。给每个按钮一个唯一的标签,例如说按钮标签/价格所来自的数组的索引(例如)。 -(IBAction)buttonPress:(id)发件人 {     UIButton * b =(UIButton *)发送器;     int标签= b.tag;     //使用标签知道按下了哪个按钮     ... } 因此,按下按钮的逻辑是一种方法,并且按钮本身具有唯一标识它的标记。     ,考虑创建UIButton子类并将产品按钮“附加”存储到按钮本身内部-这样,您可以对所有按钮执行一次操作,并在操作处理程序中从发送操作的按钮中购买产品。 您将拥有类似于以下内容的界面:
@interface MyProductButton : UIButton{
   Product *product;
}

@property (nonatomic,retain) Product *product;
- (id)initWithFrame:(CGRect)frame product:(Product*)product;
...
@end
    ,您将要用代码创建按钮,而不是使用Interface Builder。与其为每个按钮提供一种方法,不如将数据附加到按钮上,然后对每个按钮使用单一操作方法。您可以子类化UIButton并添加一个data属性,或者如果您需要存储的只是一个整数(例如,数组索引),则可以使用UIView的内置标签属性。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...