我需要知道我的程序中的按钮被按下了多少次。我尝试创建一个UIButton
类别并为其添加属性,以便每次按下按钮时我会说sender.someproperty++;
但是当我向属性添加属性时编译器会抱怨。
我能跟踪这个吗?我希望Xcode中的每个对象都有一个随机unassigned integer property
,您可以随机为其分配不同的值以跟踪每个对象
我第一次按下按钮时,我想要发生一些事情,第二次,我想要其他事情发生,第三次,我想要其他事情发生,然后第四次我想要它默认所以就像我第一次按下它一样。
答案 0 :(得分:2)
您要做的是在按钮所在的视图的视图控制器中创建一个buttonPressedCounter属性,并以这种方式跟踪它。
至于更改功能,请为buttonPressedCounter = 0,1和2定义它,之后重置行为中的计数器为buttonPressedCounter = 2,或者您的检查应该基于buttonPressedCounter%3。
评论编辑: 我认为,您还可以创建一个扩展UIButton的新类,并在其中声明一个计数器属性。这应该对你有用,并且可能比一系列计数器变量更适合你的口味。
可能看起来像这样,
@interface UIButtonCountable : UIButton
{
int _clickCounter;
}
@property (nonatomic) int clickCounter;
@end
另一种选择是不使用UIButton,而是使用具有3个可能值的滑块或分段控制,尽管我对这两种方法几乎没有任何经验。
答案 1 :(得分:1)
UIButton的子类化绝对是危险的,因为UIButton不是单个类而是class cluster。我强烈建议不要这样做。根据Apple的说法:
类集群体系结构涉及简单性和可扩展性之间的权衡:有一些公共类代表大量私有类,这使得在框架中学习和使用类更容易,但在任何类中创建子类更难群集。
您在类集群中创建的新类必须:
- 是集群抽象超类
的子类-Declare自己的存储空间
- 取消超类的原始方法
您可以使用associative references并将getter和setter方法添加到类别中,以模拟按钮上的属性,而不是向类别添加属性。