我使用以下代码在视图中绘制背景图像:
CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGContextSaveGState(currentContext);
UIImage * image = [UIImage imageNamed:@“background.jpg”]; [image drawAsPatternInRect:rect];
CGContextRestoreGState(currentContext);
这很有效。但是当我更改动画视图的大小时,绘制的图像会缩放,直到重绘为止。如何在动画期间忽略此转换?
答案 0 :(得分:2)
目前我不认为这是可能的。由于iPhone没有非常快的处理器Apple选择禁用LiveRedraw功能(实际上在Mac上可用)。
答案 1 :(得分:1)
尝试将视图的contentMode
设置为UIViewContentModeRedraw
。
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// Get the view to redraw when it's frame is changed
self.contentMode = UIViewContentModeRedraw;
}
return self;
}
答案 2 :(得分:1)
我终于找到了解决方案。我使用contentMode UIViewContentModeTopLeft,因此它不会被缩放。在调整大小动画之前,我只重新绘制新大小的旧大小。在动画之后我总是重绘。