2015-09-07 4 views
1

Я работаю над каким-то графическим приложением, используя объектив-c, и для одного из моих UIView s, я хочу, чтобы на нем было фоновое изображение. Тем не менее, я хочу, чтобы это фоновое изображение было фактическим UIView, а не отдельным UIImageView. Я сделал это с помощью этого:Создание фонового изображения UIView on Aspect Fit

self.tempDrawImage.image = [UIImage imageNamed:@"image.jpg"]; 

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

- (UIImageView *)tempDrawImage 
{ 
    if(!_tempDrawImage) _tempDrawImage = [UIImageView new]; 
    return _tempDrawImage; 
} 

- (void)drawRect:(CGRect)rect 
{ 
    UIGraphicsGetCurrentContext(); 
    [self.tempDrawImage.image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 

Теперь я изо всех сил стараюсь сделать изображение, которое я установил для image.jpg в начале, подходит. Как я мог это сделать?

+0

возможно дубликат [UIImageView изображение искажается, когда большое изображение помещается] (http://stackoverflow.com/questions/10653413/uiimageview-image-distorts-when-big-image-is-placed) –

ответ

2

Попробуйте

self.tempDrawImage.contentMode = UIViewContentModeScaleAspectFit; 
0

Вы можете использовать UIViewContentModeScaleAspectFit

self.tempDrawImage.contentMode = UIViewContentModeScaleAspectFit; 
0
UIGraphicsBeginImageContext(view.frame.size) 
UIImage(named: "YOUR-IMAGE-NAME-HERE")!.drawInRect(view.frame) 
let image = UIGraphicsGetImageFromCurrentImageContext() 
UIGraphicsGetCurrentContext() 
view.backgroundColor = UIColor(patternImage: image) 

Это работает для меня ...