1

我有这样的图像:在此处输入图像描述。在 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 吗?

需要一些指导和建议..

4

2 回答 2

7

添加以下方法

-(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]];
于 2013-05-23T04:37:24.653 回答
-1

是的,你是正确的使用 resizableImageWithCapInsets。

http://iosdevelopertips.com/user-interface/ios-5-uiimage-and-resizableimagewithcapinsets.html

于 2013-05-23T04:05:36.597 回答