1

バーに収まるように画像のサイズを変更しています。画像はデータベースにあり、これはAndroidでも同じアプリに使用されるため、サイズを変更する必要があります。問題は、このコードがうまく機能していることですiOS 6.1が、下の方5.0 5.1ではバーに黒い画像が表示されています。コードは次のとおりです。

CGSize newSize=CGSizeMake(320,44);
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self.navigationController.navigationBar setBackgroundImage:newImage  forBarMetrics:UIBarMetricsDefault];

この間違った行動のいくつかのアイデア?

良い

悪い

ありがとう

4

1 に答える 1

1

画像の特定のさとには、次の方法を使用します

+ (UIImage*)resizeImage:(UIImage*)image withWidth:(int)width withHeight:(int)height
{
    CGSize newSize = CGSizeMake(width, height);
    float widthRatio = newSize.width/image.size.width;
    float heightRatio = newSize.height/image.size.height;

    if(widthRatio > heightRatio)
    {
        newSize=CGSizeMake(image.size.width*heightRatio,image.size.height*heightRatio);
    }
    else
    {
        newSize=CGSizeMake(image.size.width*widthRatio,image.size.height*widthRatio);
    }


    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

このメソッドは、指定した特定のサイズでNewImage
を返します:) このコードはあなたに役立つかもしれません:)

于 2013-02-05T10:13:11.873 に答える