设置背景 - 居中而不是拉伸

时间:2015-06-08 15:41:23

标签: ios image layout

程序通过以下方式将背景设置为图像:

 [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);
}

我没有自己编写代码。我必须修改它。 我确实理解这里发生了什么,但我找不到解决这个问题的方法:

我希望图像在屏幕上居中(有高度),不应该拉伸或重复。

此刻,重复图像以填满屏幕。 我在互联网上搜索过,但没有找到一个明确的解决方案,可以在类似的上下文中对图像进行居中(或定位)。

如果有人可以提供帮助,我会很高兴。

1 个答案:

答案 0 :(得分:0)

来自苹果公司的文档:

+ (UIColor *)colorWithPatternImage:(UIImage *)image

您可以使用图案颜色设置填充或描边颜色,就像使用纯色一样。在绘制过程中,图案颜色中的图像会根据需要平铺以覆盖给定区域。

另一种方法是将view.layer.contents设置为你的图像,方法是将它作为类型(id)