如何将UIScrollView的背景图像设置为可伸缩图像?

我想将UIScrollView的背景图像设置为可伸缩图像。 我试过了:

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

但这不是拉伸。

我能做什么?


如果你想利用UIImage的可调整大小的属性,你需要使用UIImageView 。 正如您已经注意到的,如果您将其设置为背景颜色,则不起作用。 只需创建一个UIImageView ,并将其放在UIScrollView后面,如果它必须被修复,或者在您的UIScrollView以与contentSize相同的大小进行滚动,则需要使用相同的框架。


UIImageView添加图像和您的案例集

yourImageView.contentMode = UIViewContentModeScaleAspectFill;

您可以将其设置为以下任何一种

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

Ans在你的scrolView添加这个UIImageView

另一种方法是您可以使用以下方法获取/创建图像大小。

使用具有特定高度宽度的以下方法和图像

+ (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


试试这个

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]; 
链接地址: http://www.djcxy.com/p/70079.html

上一篇: How to set UIScrollView's background image as a stretchable image?

下一篇: Hide ImageView when keyboard appears, and show it when keyboard disappear