0

我有一个从 nsarray 字符串传递来制作图片的图像(clubcow.png)。然后 facedowncow 代表图片。我想知道如何制作一个按钮,当点击按钮时,它将把 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;
4

2 回答 2

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
     }];
}
于 2012-09-10T22:51:37.377 回答
1

首先,看起来这段代码来自一个视图控制器子类,而牛是一个子视图。在这种情况下,您可能应该拥有它的属性,而不是一直通过它的标签来获取它。如果它在情节提要场景/笔尖中实例化,那么您可以很容易地将插座连接到子类中的属性/ivar。

做你想做的最简单的方法是创建按钮并使用目标操作,以便当它被点击时,它会调用视图控制器中的方法。在方法体中,获取对奶牛的引用并设置它的 frame 属性,如下所示:

[faceDowncow setFrame: CGRectMake(100,100,faceDowncow.bounds.size.width,faceDowncow.bounds.size.height)];

如果您不知道目标操作的工作原理,我建议您阅读Apple 的相关文档。就像获取一个按钮一样简单,调用一个方法来告诉它哪些事件应该使某个方法被调用,然后实现该方法。

于 2012-09-10T22:52:17.390 回答