7

UIScrollView の背景画像を伸縮可能な画像に設定したいです。私は試した:

UIImage* backgroundImage =[[UIImage imageNamed:@"background"]
                               resizableImageWithCapInsets:UIEdgeInsetsMake(100, 0, 0, 0) ];
self.scrollView.backgroundColor = [UIColor colorWithPatternImage:backgroundImage];

しかし、それはストレッチではありません。

私に何ができる?

4

3 に答える 3

3

のサイズ変更可能なプロパティを利用したい場合はUIImage、 を使用する必要がありますUIImageView。お気づきのとおり、背景色として設定すると機能しません。を作成し、固定する必要がある場合は同じフレームUIImageViewで背後に配置するか、スクロールする場合は と同じサイズで内側に配置します...UIScrollViewUIScrollViewcontentSize

于 2013-03-18T17:41:00.873 に答える
1

UIImageViewケースセットに画像を追加する

yourImageView.contentMode = UIViewContentModeScaleAspectFill;

次のいずれかに設定できます

UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw,
UIViewContentModeCenter,
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight

Ans add This UIImageViewin you scrolView.

別の方法は、次の方法を使用して、必要に応じて画像サイズを取得/作成することです。

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

+ (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-03-18T14:51:17.693 に答える
0

これを試してみてください

UIImage* backgroundImage =[[UIImage imageNamed:@"back.jpg"]
                           resizableImageWithCapInsets:UIEdgeInsetsMake(100, 0, 0, 0) ];
UIGraphicsBeginImageContextWithOptions(self.scrollView.bounds.size, NO, 0.0);
[backgroundImage drawInRect:self.scrollView.bounds];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

self.scrollView.backgroundColor = [UIColor colorWithPatternImage:newImage]; 
于 2013-03-18T15:02:29.757 に答える