我有一个从nsarray字符串传递的图像(clubcow.png)来制作图片。然后facedowncow代表图片。我想知道如何制作一个按钮,当按下按钮时,该按钮将面朝下移动到位置(100,100)。任何提示将不胜感激。此外,还有更多的代码,我只是发布了重要的部分,以了解正在发生的事情。
cardKeys = [[NSArray alloc] initWithObjects:@"clubcow", nil];
currentName = [NSMutableString stringWithFormat:@"%@.png", [cowsShuffled objectAtIndex:currentcow]];
faceDowncow = (UIImageView *)[self.view viewWithTag:1];
faceDowncow.userInteractionEnabled = YES;
答案 0 :(得分:4)
首先创建一个UIButton
并将其添加到视图控制器的视图中。
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(0, 0, 100, 20);
[button setTitle:@"Tap Me" forState:UIControlStateNormal];
[button addTarget:self action:@selector(animateImage:)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
然后,将此按钮链接到将为faceDowncow
对象设置动画的功能。您可以将faceDowncow
添加为视图控制器的属性,以便以下函数可以轻松引用它:
- (void)animateImage:(UIButton *)sender {
[UIView animateWithDuration:0.2
animations:^{
// change origin of frame
faceDowncow.frame = CGRectMake(100, 100, faceDowncow.frame.size.width, faceDowncow.frame.size.height);
} completion:^(BOOL finished){
// do something after animation
}];
}
答案 1 :(得分:1)
首先,看起来这个代码来自一个视图控制器子类,而cow是一个子视图。在这种情况下,您可能应该拥有它的属性,而不是始终通过其标记获取它。如果它在故事板场景/笔尖中实例化,那么您可以非常轻松地将插座连接到子类中的属性/ ivar。
执行所需操作的最简单方法是创建按钮并使用目标操作,以便在点击它时,它会在视图控制器中调用方法。在方法体中,获取对牛的引用并设置它的frame属性,如下所示:
[faceDowncow setFrame: CGRectMake(100,100,faceDowncow.bounds.size.width,faceDowncow.bounds.size.height)];
如果你不知道目标行动的作用,我建议你阅读Apple's documentation on the matter。它就像获取一个按钮一样简单,调用一个方法来告诉它应该调用某个方法的事件,然后实现该方法。