2010-08-21 100 views
1

我試圖改變延遲時間後,我的圖像視圖的位置,就像下面的代碼改變位置的UIImageView通過選擇

CGPoint pointOne=CGPointMake(150, 200); 
UIImageView *sampleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"hello.png"]]; 
[sampleImage performSelector:@selector(setCenter:) withObject:[NSValue valueWithCGPoint:pointOne] afterDelay:0.5]; 

,因爲圖像視圖不接受nsvalue不正常工作PLZ發言權任何其他解決方案來傳遞cgpoint或cgrect作爲對象。提前致謝。

回答

1

只需創建另一個方法,即使在給定NSValue的ViewController中,也會將其轉換回CGPoint並將其設置爲UIIMageView。 稍後請撥打performSelector:withObject:afterDelay:與此方法聯繫。 如果您甚至需要傳遞對UIImageView的引用,則可以傳遞包含視圖和值的NSDictionary。

+0

thx for ur reply。但我想另一種方式,而不創建新的方法... – KingofHeaven 2010-08-21 11:47:31

+0

你不能使用'setCenter:'通過傳遞除'CGPoint'之外的任何東西作爲參數 – rano 2010-08-21 12:12:59

0

另一種選擇是使用核心動畫:

[UIView beginAnimations: @"MyMoveAnimation" context: nil]; 
[UIView setAnimationDelay: 0.5]; 
UIImageView* view = ... get view ...; 
view.center = ... new center ...; 
[UIView commitAnimations]; 

如果您不希望以動畫時間移動​​到的地方,那麼你還可以設置爲零,或設置它的transparancy使其消失in。