使用colorWithPatternImage在iOS中伸展图像

我有这样一个图像: 在这里输入图像说明 。 在iPad中,当我把它与这些代码:

[separatorLineView setFrame:CGRectMake(10, 0, 430, 3)]; separatorLineView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"divider.png"]]; 

在iPad中,它显示如下:

在这里输入图像说明

在iPhone中,它工作正常。

iPhone的代码如下所示:

 [separatorLineView setFrame:CGRectMake(10, 0, 180, 3)]; separatorLineView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"divider.png"]]; 

如何避免重复? 我必须使用resizableImageWithCapInsets?

需要一些指导和build议..

添加下面的方法

 -(UIImage *)imageResize :(UIImage*)img andResizeTo:(CGSize)newSize { CGFloat scale = [[UIScreen mainScreen]scale]; //UIGraphicsBeginImageContext(newSize); UIGraphicsBeginImageContextWithOptions(newSize, NO, scale); [img drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } 

现在改变你的代码

 [separatorLineView setFrame:CGRectMake(10, 0, 180, 3)]; separatorLineView.backgroundColor = [UIColor colorWithPatternImage:[self imageResize :[UIImage imageNamed:@"divider.png"] andResizeTo:separatorLineView.frame.size]];