backgroundColor colorWithPatternImage结束了伸如果大小的变化,而不是重复?

StackOverflow https://stackoverflow.com/questions/1418735

  •  07-07-2019
  •  | 
  •  

我设置一个视背景的一个重复的图像使用colorWithPatternImage.如果查看大小变动之后,我设置背景的第一次图像得到伸,而不是重复的新的大小-任何想法,我如何能解决这个问题?

这是我在做什么:

  • 设置图的背景viewDidLoad:

    frameView.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"框架--赘述。png"]];

  • 抓住一些信息服务器,更新视图,改变了看的框架的大小,以适应新的内容(通常,这意味着让景更高)

  • 背景图像,现在是伸,即使如果我设定的backgroundColor再次使用完全相同的代码。

如果我不做的初步背景设定,只有将它设置之后我检索的数据服务器和改变视的大小,它看起来很棒-重复,并没有伸缩。然而,这意味着没有背景的同时,将数据加载...看起来丑陋。

有其他人碰到这个吗?

感谢任何的帮助!

有帮助吗?

解决方案

答案是很简单的,只需拨打

[[self view] setNeedsDisplay];

在控制器的时候你改变框架的大小(或无论你做它,底线是发送setNeedsDisplay消息的查看后框架的变化)。如果这不起作用-试试设置的背景的颜色。

如果这不起作用,实现自己的自定义来看,并在它复盖的方法

- (void) drawRect:(CGRect) rect {
   CGRect myBounds = self.bounds;
   CGContextRef context = UIGraphicsGetCurrentContext();
   [[UIColor colorWithPatternImage:[UIImage imageNamed:@"frame-repeat.png.png"]]set];
   CGContextFillRect(context, myBounds);
}

然后,经过调整,发送setNeedsDisplay到你的看法。这会工作的100%。

希望这有帮助,帕维尔

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top