UIView背景图像按比例调整大小

时间:2012-04-26 02:19:27

标签: iphone objective-c ios cocoa-touch uiview

我有一个大小为200 * 100的Background.png图片,我为uiview设置了背景图片:

    UIView view= UIView alloc] initWithFrame:CGRectMake(50, 100, 200, 100)];
    view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"Background.png"]];

现在,我通过以下方式重置框架UIView:

    [view setFrame:CGRectMake(50,100,400,200)];

我需要按照uiview的比例调整背景图像的大小,但我只有一个固定大小的Background.png图像。我该怎么做。

2 个答案:

答案 0 :(得分:6)

相应地调整你的尺寸

    UIGraphicsBeginImageContext( newSize );
   [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
   UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

    UIView view= UIView alloc] initWithFrame:CGRectMake(50, 100, 200, 100)];
    view.backgroundColor = [[UIColor alloc] initWithPatternImage:newImage];

否则拍摄图像并设置contentMode,如果你不想平铺图像

答案 1 :(得分:3)

根据您的需求,最简单的方法是将UIImageView添加为视图的子视图,并设置其图像,让它为您处理调整大小。否则,您可能需要编写一些复杂的大小调整和绘图代码。