使用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]];
是的,你是正确使用resizableImageWithCapInsets。
http://iosdevelopertips.com/user-interface/ios-5-uiimage-and-resizableimagewithcapinsets.html