水平和垂直重复图像

时间:2015-05-02 11:10:23

标签: ios imageview

我想重复以下图片:

enter image description here

实现以下背景:

enter image description here

我尝试了几个代码如下:

pkgIndex.tcl

bluePatternView.backgroundColor = [UIColor colorWithPatternImage:
    [[UIImage imageNamed:@"blue_pattern.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:0]];

我还尝试使用CGContextDrawTiledImage绘制图像但没有成功。

如何做到这一点?!

编辑:实施luk2302的结果。请通过upvoting给予他认可

bluePatternView.backgroundColor = 
    [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"blue_pattern.png"]];

结果:

enter image description here

4 个答案:

答案 0 :(得分:25)

我在 images.xcassets

中找到了解决方案

第1步:将图片放入images.xcassets

第2步: - 点击图片,然后点击右下角写的“显示切片” Put image

第3步: - 点击开始切片
start slicing

第4步: - 点击"水平和垂直切片"按钮
Slice horizontally and vertically

第5步: - 在这里,您将看到3水平和3垂直切片线 enter image description here

  • 将最左边的垂直线放在图像的左侧,将最右边的两条线放到图像的右侧。
  • 将最顶行放在图像顶部,将最底部的行放在图像底部。
  • 所以最后的结果会是这样的。

enter image description here

第6步: - 使用此图片。

现在图像将重复出现。

enter image description here

注意: - 如果您对2x图像进行切片,它将仅重复2x图像,对于3x图像,您需要进行相同的切片。

Example by Apple

答案 1 :(得分:1)

bluePatternView.backgroundColor = UIColor(patternImage: UIImage(named: "blue_pattern")!)

答案 2 :(得分:0)

您需要在资产中保存图像,然后将这些行放在viewdidload

bluePatternView.backgroundColor = UIColor.init(patternImage: #imageLiteral(resourceName: "f8"))

这适用于Swift 4.1。

答案 3 :(得分:-1)

使用像这样使用stretchableImageWithLeftCapWidth的Bellow方法: -

UIImage *backgroundImage = [[UIImage imageNamed:@"SheetBackground.png"] stretchableImageWithLeftCapWidth:0.5 topCapHeight:0];

作为你需要的例子: -

UIImage *backgroundImage = [[UIImage imageNamed:@"q4Ses.png"] stretchableImageWithLeftCapWidth:0.5 topCapHeight:0];

  [_scro setBackgroundColor:[UIColor colorWithPatternImage:backgroundImage]];