2015-06-08 2 views
0

программка задает фон в виде изображения с помощью:Набор фона - по центру и не растягивается

[backgroundViewProxy setBackgroundColor:[UIColor colorWithPatternImage:[theme backgroundImage]]]; 

DrawRect из correspoinding UIView является:

- (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

От Docs яблока:

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

Вы можете использовать цвета шаблонов для установки заливки или обводки цвета так же, как сплошной цвет. Во время рисования изображение в цвете рисунка разбивается по мере необходимости, чтобы покрыть данную область.

Альтернативой может быть установка view.layer.contents к вам изображение путем литья его как типа (id)