backgroundColor colorWithPatternImage结束了伸如果大小的变化,而不是重复?
-
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%。
希望这有帮助,帕维尔
不隶属于 StackOverflow