Ios 水平和垂直重复图像

Ios 水平和垂直重复图像,ios,imageview,Ios,Imageview,我想重复下图: 要实现以下背景: 我尝试了以下几种代码: bluePatternView.backgroundColor = [UIColor colorWithPatternImage: [[UIImage imageNamed:@"blue_pattern.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:0]]; 以及: 我还尝试用CGContextDrawTileImage绘制图像,但没有成功 这怎么办 编辑:执行l

我想重复下图:

要实现以下背景:

我尝试了以下几种代码:

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

我还尝试用CGContextDrawTileImage绘制图像,但没有成功

这怎么办

编辑:执行luk2302的结果。请向上投票认可他

bluePatternView.backgroundColor = 
  [UIColor colorWithPatternImage:[UIImage imageNamed:@"blue_pattern.png"]];
结果:


使用以下方法,使用LeftCapWidth的可拉伸图像,如下所示:-

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

你需要的例子:-< /P>

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

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

正如我的评论所说:使用

bluePatternView.backgroundColor = 
  [UIColor colorWithPatternImage:[UIImage imageNamed:@"blue_pattern.png"]];
你不想拉伸你的形象。让UIKit处理重复

假设bluePatternView是要为其设置图案作为背景的实际大视图。如果代码仍然不起作用,可能您设置了错误视图的background属性

注意:复制具有@2x和@3x扩展名的相同的图像将使设备表现正常,以获得更好的分辨率


我在images.xcsets中找到了解决方案

第1步:-将图像放入images.xcsets

第2步:-单击图像,然后单击右下角的“显示切片”

第3步:-单击开始切片

第4步:-单击“水平和垂直切片”按钮

第5步:-这里您将看到3条水平和3条垂直切片线。

  • 将最左边的垂直线放在图像的左侧,将最右边的两条线放在图像的右侧。
  • 将最上面的一行置于图像顶部,将最下面的两行置于图像底部
  • 所以最终的结果是这样的

第6步:-使用此图像

现在图像将被重复

注意:-如果对2x图像进行切片,则只会重复2x图像,对于3x图像,则需要执行相同的切片操作。


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

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


这是针对Swift 4.1的。

第一行不起作用!?您是否尝试过仅使用
bluePatternView.backgroundColor=[UIColor-WithPatternImage:[UIImage-imageNamed:@“blue_-pattern.png]”
StretcableImageWithLeftCapWidth
已被弃用。另外,如果您想使用其功能,请改用
ResizeableImageWithCapInsets
。@luk2302您以前做过吗?你能帮忙吗?是的,我帮了。应该是非常简单和直接的!它是使用模拟器和xcode的缓存。我不得不从/Users/Apple/Library/Developer/Xcode/DerivedDataI中删除派生数据。你是从另一个答案复制过来的?!我会再试一次!我也在尝试这段代码,它对我有用,这就是为什么我要回答这段代码拉伸图像,不要重复它。纵向拉伸我想要一个垂直和水平的重复。我试过了。它水平地重复,垂直地拉伸。我们需要修改视图模式。缩放以填充或方面匹配。存在于界面构建器中。现在,他们关注的是内容,而不是背景。我假设您在IB中设置了一个大视图,并通过上面的代码设置了背景,对吗!?是的,你说得对。我用你的代码和结果更新了问题,我会再次检查!这对我来说非常有效,尽管我的图案图像设计非常小。谢谢。在这种情况下,切片到底意味着什么?或者,这与重复某件事是一样的?@Honey
使用Xcode切片功能来指定图像可调整大小的中心区域的尺寸,并可以选择指定端盖,这是图像中不应该由可调整大小的区域填充的区域
@ZaidPathan非常感谢您提供的惊人解决方案!我已经在Xcode上工作了大约3年,从来都不知道这件事!不要忘了在ImageView中将图像内容模式设置为(按比例填充)。虽然欢迎使用此代码片段,并且可能会提供一些帮助,但这将是解决问题的方法和原因。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。
bluePatternView.backgroundColor = UIColor(patternImage: UIImage(named: "blue_pattern")!)
bluePatternView.backgroundColor = UIColor.init(patternImage: #imageLiteral(resourceName: "f8"))