2013-03-18 3 views
7

UIScrollView의 배경 이미지를 늘릴 수있는 이미지로 설정하려고합니다. 나는 시도했다 :UIScrollView의 배경 이미지를 늘릴 수있는 이미지로 설정하는 방법은 무엇입니까?

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

그러나 그것은 기지개하고 있지 않다.

어떻게해야합니까? UIImageView 및 귀하의 경우

답변

3

, 당신은 UIImageView를 사용할 필요가보십시오. 당신이 알아 차 렸던 것처럼, 배경색으로 설정하면 작동하지 않습니다. UIImageView을 작성하고 고정해야하는 경우 동일한 프레임으로 UIScrollView 뒤에 넣거나 UIScrollViewcontentSize과 같은 크기로 내고 스크롤하면됩니다.

1

추가 이미지는 당신이 scrolView에서이 UIImageView를 추가하려면 다음

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

Ans By의 어떤으로 설정할 수 있습니다

yourImageView.contentMode = UIViewContentModeScaleAspectFill; 

을 설정합니다.

또 다른 방법은 원하는대로 이미지 크기를 가져 오거나 만들려면 다음 방법을 사용할 수 있습니다. 사용자가 지정한 이미지

+ (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와 특정 높이 및 폭 와 방법에 따라

사용.

0

당신이 UIImage의 크기 조정이 가능한 특성을 활용하려면이 하나

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]; 
관련 문제