【发布时间】:2014-05-21 00:54:33
【问题描述】:
我是一个目标 C 的菜鸟,所以任何帮助/解释都将不胜感激!
我正在制作一个鼓应用程序来获得一点乐趣。我为鼓的每个部分设置了一个按钮,当点击按钮时,它会动画成长。我在情节提要上创建了按钮,而不是在代码中。
我有按钮来制作动画,但我不想为架子鼓的每个元素重复代码,但是我在将按钮分配给数组时遇到了一些问题,决定按下的按钮(标签??),然后使该按钮动画。
这里有一些我的代码可以提供帮助:
@interface mainViewController : UIViewController
//set buttons
@property (weak, nonatomic) IBOutlet UIButton *button1;
@property (weak, nonatomic) IBOutlet UIButton *button2;
- (IBAction)buttonTrigger:(UIButton *)sender;
我不会为每个按钮添加代码,因为它是相同的:
@interface mainViewController ()
@property (nonatomic) CGAffineTransform button1transform, button2transform;;
@end
@implementation mainViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self.button1 addObserver:self forKeyPath:@"highlighted" options:0 context:0];
self.button1transform = self.button1.transform;
[self.button1 addObserver:self forKeyPath:@"highlighted" options:0 context:0];
self.button2transform = self.button2.transform;
}
//动画:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if (object == self.button1)
{
CGAffineTransform transform;
if (self.button1.isHighlighted)
{
float scale = 2.0;
transform = CGAffineTransformScale(self.button1transform, scale, scale);
}
else
{
transform = self.button1transform;
}
[UIView animateWithDuration:0.5
delay:0.5
options:options
animations:^{
self.button1.transform = transform;
}
completion:nil];
}
//this code is repeated for the other 6 buttons
}
- (void)dealloc
{
[self.button1 removeObserver:self forKeyPath:@"highlighted"];
[self.button2 removeObserver:self forKeyPath:@"highlighted"];
}
向数组添加按钮的一些帮助会很棒
谢谢
【问题讨论】:
-
旁注:您不能在按钮的“突出显示”状态下使用 KVO。子类化按钮并覆盖
setHighlighted:。 -
回滚了,请不要从问题中删除文本,所以它没有意义。如果您不希望人们看到您的代码,请不要费心提出问题。
-
我已经回滚了一次,请停止将您的问题更改为没有意义,就像我已经说过,如果您不希望人们知道您的代码,请不要提问,它真的就是这么简单。
-
@Popeye 我只是在整理代码,所以它的代码更少,但我的问题以更容易阅读的方式表达出来,这到底有什么问题?
-
显然你没有这样做,虽然检查了编辑历史,但你已经从根本上改变了问题,因为对于已经解决问题的答案没有任何意义,所以反过来那些不再解决原来的问题问的问题。
标签: iphone objective-c arrays ios6 appdelegate