Iphone backgroundColor colorWithPatternImage在视图大小改变时会拉伸,而不是重复?

Iphone backgroundColor colorWithPatternImage在视图大小改变时会拉伸,而不是重复?,iphone,background-color,Iphone,Background Color,我正在使用colorWithPatternImage将视图背景设置为重复图像。如果在我第一次设置背景后视图大小发生变化,图像会被拉伸,而不是重复新的大小-有什么办法可以解决这个问题吗 这就是我正在做的: 在viewDidLoad中设置视图的背景: frameView.backgroundColor=[UIColor colorWithPatternImage:[UIImage ImageName:@“frame repeat.png”] 从服务器获取一些信息,更新视图,更改视图的框架大小以适应

我正在使用colorWithPatternImage将视图背景设置为重复图像。如果在我第一次设置背景后视图大小发生变化,图像会被拉伸,而不是重复新的大小-有什么办法可以解决这个问题吗

这就是我正在做的:

  • 在viewDidLoad中设置视图的背景:

    frameView.backgroundColor=[UIColor colorWithPatternImage:[UIImage ImageName:@“frame repeat.png”]

  • 从服务器获取一些信息,更新视图,更改视图的框架大小以适应新内容(通常,这意味着使视图更高)

  • 背景图像现在被拉伸,即使我使用完全相同的代码再次设置背景色

如果我不进行初始背景设置,只在从服务器检索数据并更改视图大小后进行设置,那么它看起来非常棒-重复,并且没有拉伸。但是,这意味着加载数据时没有背景。。。看起来很丑

还有其他人碰到过这个吗


谢谢你的帮助

答案很简单,打个电话就可以了

[[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%有效


希望这能有所帮助,Pawel

我还没有看到,但快速提问:你是在iPhone/iPod Touch上还是在模拟器上这样做的?我在模拟器上遇到了一些奇怪的错误,在将子视图添加到现有视图时,它不能正确调整UIView的大小,但是它在设备上工作得非常好。这是在设备上,使用3.0。