3

私のiPhoneアプリでは、UIImageViewをプログラムでサイズ変更して移動し、iPhone画面の左上隅を原点として、画面の高さと同じ幅と高さの両方にするようにしています。そうするために、私は次のコードで使用しています:

-(void)viewDidLoad
{
     //Getting screen size
     CGRect screenSize = [[UIScreen mainScreen]bounds];

     //Creating the new frame for the UIImageView
     CGRect arect = CGRectMake(0, 0, screenSize.size.height, screenSize.size.height);
     //Setting the image to show

     UIImage *image = [UIImage imageNamed:@"Adele.jpg"];
     self.imageView.image = image;

     //Setting new frame and contentmode
     self.imageView.frame = arect;
     self.imageView.contentMode = UIViewContentModeScaleToFill;
}

self.imageViewは、InterfaceBuilderで作成したアウトレットです。

問題は、アプリケーションを起動したときに、このコードがUIImageViewのフレームに影響を与えていないように見えることです。imageview infactは、IBで作成したときに設定したのと同じ位置と同じサイズで表示されます。

このコードが機能しない理由を知っている人はいますか?私は何が欠けていますか?

4

1 に答える 1

5

別のコンテンツモードが必要になるかもしれません。

試してみてくださいUIViewContentModeScaleAspectFit。コンテキスト:

self.imageView.frame = arect;  
self.imageView.contentMode = UIViewContentModeScaleToFill;

それがうまくいかない場合は、次のことができますinitWithFrame

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[myImage setImage:[UIImage imageNamed:@"myImage.png"]];

ソース

于 2012-11-21T18:21:56.573 に答える