0

次のようにビューを作成します。

// Create sub view for Logo
logoView =[[UIView alloc] initWithFrame:CGRectMake(0,0,screen.size.width,(screen.size.height - 230))];
[logoView setBackgroundColor:[UIColor blueColor]];
UIImageView *bgLogoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-welcomeLogoView.png"]];
[logoView addSubview:bgLogoView];
//NSLog(@"the button view height is %f",(screen.size.height - 230));
logoView.autoresizingMask = UIViewAutoresizingFlexibleHeight;

logoView のセット ボックスがあります。高さ230(iphone4<)、318(iphone5)です。このブロックの 640x460px の画像を作成しました。

この画像をビューに合わせるにはどうすればよいですか。現時点では、フルサイズの画像をブロックにロードしますが、実際にはそのサイズの半分です...画像は、品質のために2倍のサイズになりました。私はios5を実行しているiphone4でテストしています。

何らかの方法で画像を周囲のビューのビュー境界に合わせるのに1つか2つの行が欠けていると確信しています。

4

3 に答える 3

3

画像ビューのフレームをリセットする必要があります。あなたが持っているように、画像ビューのフレームは画像のサイズになります。また、画像ビューのcontentMode. 最後に、画像ビューのautoresizingMask.

logoView =[[UIView alloc] initWithFrame:CGRectMake(0,0,screen.size.width,(screen.size.height - 230))];
[logoView setBackgroundColor:[UIColor blueColor]];
UIImageView *bgLogoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-welcomeLogoView.png"]];
bgLogoView.frame = logoView.bounds; // reset the frame
bgLogoView.contentMode = UIViewContentModeScaleAspectFit; // or other desired mode
bgLogoView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
[logoView addSubview:bgLogoView];
//NSLog(@"the button view height is %f",(screen.size.height - 230));
logoView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
于 2013-03-27T21:36:28.550 に答える
2

何かのようなもの

bgLogoView.contentMode = UIViewContentModeScaleAspectFit;

UIView の contentMode プロパティを見てください。可能な値は次のとおりです。

typedef enum {
   UIViewContentModeScaleToFill,
   UIViewContentModeScaleAspectFit,
   UIViewContentModeScaleAspectFill,
   UIViewContentModeRedraw,
   UIViewContentModeCenter,
   UIViewContentModeTop,
   UIViewContentModeBottom,
   UIViewContentModeLeft,
   UIViewContentModeRight,
   UIViewContentModeTopLeft,
   UIViewContentModeTopRight,
   UIViewContentModeBottomLeft,
   UIViewContentModeBottomRight,
} UIViewContentMode;
于 2013-03-27T21:30:52.183 に答える
0

これを試して:

UIImageView *bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 230)];
NSString *bgFilePath = [[NSBundle mainBundle] pathForResource:@"bg-welcomeLogoView"
                                                       ofType:@"png"];
UIImage *img = [[UIImage alloc] initWithContentsOfFile:bgFilePath];
[bgImageView setImage:img];
[logoView addSubview:bgImageView];

initWithFrame で UIImageView のサイズを変更できます。

于 2013-03-27T21:32:26.923 に答える