2013-08-23 54 views
1

解決:關閉自動佈局和使用springs-struts如何更新UIImageVIew的背景?

我有一個傍類型的遊戲我一直在嘗試與從廈門國際銀行文件使用三個的UIImageView對象。一個UIImageView是球,通過NSTimer對象在屏幕上跳動,另外兩個是「槳」。

當用戶點擊屏幕時,球開始移動。上下拖動手指移動右側槳。該槳只使用10x60 PNG文件作爲背景。當用戶點擊屏幕時,球在運動,我想暫時改變槳上的背景作爲視覺效果。問題是,更改槳的背景似乎會重置UIImageViews在屏幕上的位置。有沒有一些奧祕的財產的iOS重置視圖或什麼時候背景改變或我只是做錯了?

.h文件中

@property (weak, nonatomic) IBOutlet UIImageView *paddleLeft; 
@property (weak, nonatomic) IBOutlet UIImageView *paddleBall; 
@property (weak, nonatomic) IBOutlet UIImageView *paddleRight; 

.m文件

@synthesize paddleRight; 
@synthesize paddleLeft; 
@synthesize paddleBall; 

...

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog (@"touches began"); 

    if (self.paused) 
    { 
     self.paused = NO; 
     NSLog (@"ball launch"); 
    } 
    else 
    { 
     // hilite the paddle with different 10x60 image 
     self.paddleRight.image = [UIImage imageNamed:@"rect_2.png"]; 
    } 
} 
+0

只要是他們是相同的大小設置'self.paddleRight.image'不應該chan ge框架。 –

+1

這可能是一個自動佈局問題。如果它打開了,並且您正在更改框架,則導致系統佈置子視圖的任何內容(如更改圖像)都會將對象的位置重置爲由約束設置的位置。 – rdelmar

+0

rdelmar - 你是對的!從xib中刪除自動佈局並使用彈簧/支柱調整約束條件後,不再在更改圖像時重置視圖的位置。謝謝! – wufoo

回答

0

關閉自動佈局和使用彈簧,支柱