簡體   English   中英

iOS-為什么我的UIImageView會移動?

[英]iOS - Why is my UIImageView moving?

這是我在iOS程序中為其繪制節拍器圖像的功能。 當我加載它時,會加載節拍器圖像,但是會從屏幕左上方“飛”到所需位置。 這不是我想要的行為-我只是希望圖像出現在所需位置。 有人可以啟發我為什么會發生這種情況,以及如何解決它嗎? 提前謝謝了。

碼頭。

- (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];
}

替換此行

[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;

我正在使用Controller來顯示圖像。 我重組了代碼,以使圖像始終在視圖代碼的drawRect中“繪制”,就像這樣。

- (void)drawRect:(CGRect)rect
{  

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

這沒有問題-請注意,我只是使用了drawInRect,而是使用了UIImage而不是setFrame和UIImageView。 我想我只是遵循這樣的約定:任何圖形都應該在視圖代碼中完成,而不是在控制器中完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM