2012-09-10 82 views
0

我有一個圖像(clubcow.png),它是從一個nsarray字符串傳遞來創建一個圖片。然後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; 
+0

您是否嘗試在'beginAnimation'和'commitAnimations'之間設置新的imageView框架? –

回答

1

首先,它看起來像這樣的代碼是從一個視圖控制器子類,牛是一個子視圖。在這種情況下,你可能應該有一個屬性,而不是始終通過標籤獲取它。如果它在storyboard scene/nib中被實例化,那麼你可以很容易地將一個插座連接到你的子類中的一個屬性/ ivar。

最簡單的做法是創建按鈕並使用目標操作,以便當它被點擊時調用視圖控制器中的方法。在方法體中,獲取到你的牛參考,並設置它的框架屬性,像這樣:

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

如果你不知道目標的行動是如何工作的,我建議您閱讀Apple's documentation on the matter。這與獲取按鈕一樣簡單,調用一種方法告訴它哪些事件應該調用某個方法,然後實現該方法。

+0

這一個作品,感謝哥們。 –

+0

不客氣。 – Metabble

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 
    }]; 
} 
+0

+1,因爲它展示瞭如何動畫動畫。 – Metabble

+0

謝謝,希望它有幫助 – johngraham