如何为UIView制作基于图像的平铺背景,使其无法缩放?

时间:2015-04-26 13:39:45

标签: ios swift uiimage

在iOS应用程序中,我有250x85pt UIView。我希望它有基于图像的平铺背景。原始图像为398x398像素。我希望我的图像能够平铺。

enter image description here

当我运行应用程序时,我的图像会拼贴,但由于某种原因,它按如下方式缩放:

enter image description here

我使用以下代码来实现它:

var image = UIImage(contentsOfFile: "myfilepath.png")!
var uicolor = UIColor(patternImage: image)
uiview.backgroundColor = uicolor
你可以解释一下吗? 1.为什么ios会缩放我的图像,以及 2.如何在不缩放的情况下绘制平铺图像?

3 个答案:

答案 0 :(得分:6)

基本上图像比$(document).ready(function(){ $('input').on('keypress', function(e) { if(e.which == 13) { switch($(this).attr('id')){ case 'txt1': $('#txt2').focus(); e.preventDefault(); break; case 'txt2': $('#txt3').focus(); e.preventDefault(); break; } } }); }); 大。当你给UIView时,它使用1倍大小的图像。 我们通常笔记本电脑的图像按其宽高比缩放到窗口大小。

然后根据您的要求缩放图像,然后将其应用为背景图像。

答案 1 :(得分:5)

为了扩展Banto的答案,问题是您的视图是250x85点,在视网膜设备上实际上是500x170像素。当您的x1图像变为图案时,它将在点级别应用。通过在图像上设置刻度以匹配设备上的刻度,可以轻松更改问题:

let view = UIView(frame: CGRect(x: 0, y: 0, width: 250, height: 85))

let image = UIImage(named: "myfilepath.png")!
let scaled = UIImage(CGImage: image.CGImage, scale: UIScreen.mainScreen().scale, orientation: image.imageOrientation)

view.backgroundColor = UIColor(patternImage: scaled!)

答案 2 :(得分:0)

试试这个

 self.mainView.layer.contents = (id)[UIImage imageNamed:@"CROPNET.png"].CGImage;