2012-07-24 80 views
1

這是我在我的iOS程序中繪製節拍器圖像的功能。 當我加載它時,節拍器圖像被加載,但從屏幕的左上角向下「飛」到所需的位置。這不是我想要的行爲 - 我只是希望圖像出現在所需的位置。有人能告訴我爲什麼會發生這種情況,以及如何解決它? 非常感謝提前。iOS - 爲什麼我的UIImageView在移動?

碼頭。

- (void) drawMetronomeForBeat: (int) beatNumber withNumberOfBeats:(int) noBeats 
{ 

// remove any previous instances first 
if (metronomeImageView) 
{ 
    [metronomeImageView removeFromSuperview]; 
} 

NSString * imageName = @"metronome"; 
NSString * noBeatsStr = [NSString stringWithFormat:@"%d", noBeats]; 
NSString * beatNumberStr = [NSString stringWithFormat:@"%d", beatNumber]; 
imageName = [imageName stringByAppendingString:noBeatsStr]; 
imageName = [imageName stringByAppendingString:@"b"]; 
imageName = [imageName stringByAppendingString:beatNumberStr]; 

UIImage* image = [UIImage imageNamed: imageName]; 
UIImageView * symbolImageView = [[UIImageView alloc] initWithImage:image]; 

[symbolImageView setFrame:CGRectMake(410.0f, 215.0f, symbolImageView.frame.size.width, symbolImageView.frame.size.height)]; 
metronomeImageView = symbolImageView; 
[self.view addSubview:symbolImageView]; 
} 
+0

任何截圖? – holex 2012-07-24 08:11:21

+1

嘗試刪除if語句(用它的正文),並用'[self.view addSubview:metronomeImageView]替換最後一行;' – benjammin 2012-07-24 08:14:29

+0

不起作用...我意識到如果我直接在視圖代碼中繪製圖像沒有發生這種情況。雖然... – lppier 2012-07-24 12:12:17

回答

0

替換此線

[symbolImageView setFrame:CGRectMake(410.0f, 215.0f, symbolImageView.frame.size.width, symbolImageView.frame.size.height)]; 

[symbolImageView setFrame:CGRectMake(410.0f, 215.0f, 22, 22)]; //Change 22, 22 according to size that you need. 

圖像視圖將變得更大或更小,根據「實像」的大小正在顯示。所以它會在一些地方移動,這樣imageview將保持中心對齊。

編輯:

我想你設置symbolImageView不同的幀。

嘗試此

symbolImageView.frame = metronomeImageView.frame; 
+0

不起作用..謝謝。同樣的事情發生,只是圖像的大小不同。 – lppier 2012-07-24 12:11:31

0

我所用的控制器,以顯示圖像。我重組我的代碼,以便圖像始終在視圖代碼的drawRect「繪製」,這樣的..

- (void)drawRect:(CGRect)rect 
{ 

if (metronomeImage) 
{ 
    [metronomeImage drawInRect:CGRectMake(410.0f, 215.0f, metronomeImage.size.width, metronomeImage.size.height)]; 
} 
} 

這工作沒有任何問題 - 請注意,我只是用drawInRect和公正的UIImage代替SETFRAME和UIImageView。我想我會遵循約定,任何圖形應該在視圖代碼中完成,而不是控制器。

相關問題