水平和垂直重复图像

has*_*san 17 imageview ios

我想重复以下图片:

在此输入图像描述

达到以下背景:

在此输入图像描述

我尝试了几个代码如下:

bluePatternView.backgroundColor = [UIColor colorWithPatternImage:
    [[UIImage imageNamed:@"blue_pattern.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:0]];
Run Code Online (Sandbox Code Playgroud)

和:

bluePatternView.backgroundColor = 
    [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"blue_pattern.png"]];
Run Code Online (Sandbox Code Playgroud)

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

怎么做?!

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

bluePatternView.backgroundColor = 
  [UIColor colorWithPatternImage:[UIImage imageNamed:@"blue_pattern.png"]];
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

Zai*_*han 28

我在images.xcassets找到了解决方案,

第1步: -将图像放到images.xcassets

第2步: -点击图片,然后点击右下角写的"显示切片" 放图像

第3步: -单击开始切片
开始切片

步骤4: -单击"水平和垂直切片"按钮
水平和垂直切片

步骤5: -在这里您将看到3水平和3垂直切片线.
在此输入图像描述

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

在此输入图像描述

第6步: -使用此图像.

现在图像将重复.

在此输入图像描述

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

Apple的例子

  • 不要忘记在 imageView 中将图像内容模式设置为(缩放以填充) (2认同)

luk*_*302 20

正如我的评论已经说过:使用

bluePatternView.backgroundColor = 
  [UIColor colorWithPatternImage:[UIImage imageNamed:@"blue_pattern.png"]];
Run Code Online (Sandbox Code Playgroud)

你不想拉伸你的形象.让UIKit负责重复.

假设您的bluePatternView是要将模式设置为背景的实际大视图.如果该代码仍无效,您可能正在设置错误视图的背景属性.

注意:使用@ 2x和@ 3x扩展名复制SAME图像将导致更好的分辨率设备的正常行为.

在此输入图像描述


Riz*_*taz 5

bluePatternView.backgroundColor = UIColor(patternImage: UIImage(named: "blue_pattern")!)
Run Code Online (Sandbox Code Playgroud)

  • 虽然这个代码片段是受欢迎的,并且可能会提供一些帮助,但它会[如果它包含解释](//meta.stackexchange.com/q/114762)*如何*和*为什么*这会解决问题[大大改进] . 请记住,您是在为未来的读者回答问题,而不仅仅是现在问的人!请[编辑]您的答案以添加解释,并说明适用的限制和假设。 (2认同)