2014-02-23 21 views
0

我試圖在viewDidLoad中移動球圖像,如下所示。我跑了它。正如我所預料的那樣,Log顯示x值從160改爲50。但是,iOS模擬器上的圖像仍處於x爲160的Interface Builder的原始位置。爲什麼?將圖像移入viewDidLoad

如何在圖像顯示之前移動圖像的位置?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    NSLog(@"%f", Ball.center.x); 
    Ball.center = CGPointMake(50, 50); 
    NSLog(@"%f", Ball.center.x); 
} 
+1

? – santhu

回答

0

呼叫[self.view setNeedsDisplay];方法,因爲該視圖後,您viewDidLoad觸發實際上是加載並在設備上繪製的,你改變圖像的位置,你應該告訴你的設備重繪以嶄新的形象地位的看法。

0

一對夫婦的建議:

1. First check that `Ball` is connected to IBOutlet in interface builder. 

2. To change the frame of a UIImageView, I would suggest to use UIView animation 
    blocks for smooth animation effects 

3. You can also use `performSelector` and delay the animation to e.g., `0.1` sec etc. 

希望這些點可以指導你解決這個問題。

1

而不是viewDidLoad使用自動版式您的代碼添加到viewDidLayoutSubviews方法

- (void)viewDidLayoutSubviews { 
    [super viewDidLayoutSubviews]; 
    Ball.center = CGPointMake(50, 50); 
}