程序通过以下方式将背景设置为图像:
[backgroundViewProxy setBackgroundColor:[UIColor colorWithPatternImage:[theme backgroundImage]]];
相应的UIView的drawRect是:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGSize phase = self.backgroundShift; //set this property to affect the positioning of the background image
CGContextSetPatternPhase(context, phase);
CGColorRef color = self.backgroundColor.CGColor;
CGContextSetFillColorWithColor(context, color);
CGContextFillRect(context, self.bounds);
CGContextRestoreGState(context);
}
我没有自己编写代码。我必须修改它。 我确实理解这里发生了什么,但我找不到解决这个问题的方法:
我希望图像在屏幕上居中(有高度),不应该拉伸或重复。
此刻,重复图像以填满屏幕。 我在互联网上搜索过,但没有找到一个明确的解决方案,可以在类似的上下文中对图像进行居中(或定位)。
如果有人可以提供帮助,我会很高兴。
答案 0 :(得分:0)
来自苹果公司的文档:
+ (UIColor *)colorWithPatternImage:(UIImage *)image
您可以使用图案颜色设置填充或描边颜色,就像使用纯色一样。在绘制过程中,图案颜色中的图像会根据需要平铺以覆盖给定区域。
另一种方法是将view.layer.contents设置为你的图像,方法是将它作为类型(id)