2012-01-05 4 views
0

У меня есть два UIImageViews в моем СИБЕ и по и один из его изменения размеров в соответствии со значением UISlider кодекса: -Image Resize эмиссионных iphone

-(IBAction)sliderChanged:(UISlider*)slider{ 
    CGFloat scaleFactor=slider.value; 

    markerImage.transform = CGAffineTransformMakeScale(scaleFactor,scaleFactor); 
} 

это правильно изменением размера, но когда я сливаю эти изображения вместе по этому коду

UIImage *backImage=backgroundImage.image; 
UIImage *markImage=markerImage.image; 

UIGraphicsBeginImageContext(backImage.size); 

[backImage drawAtPoint:CGPointMake(0,0)]; 
[markImage drawAtPoint:CGPointMake(0,0)]; 

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

я получил объединенном изображение с оригинальным размером, То есть маркер изображение появляется в одном измерении в полученном изображении , как я могу нарисовать изображение маркеров в правильной пропорции Спасибо

ответ

1

Вместо drawAtPoint: используйте drawInRect:(CGRect)rect. Кроме того, необходимо использовать значение ползунка.

Предполагая sliderValue между 0 и 1,

CGRect rect = CGRectMake(0,0, markerImage.size.width*sliderValue, markerImage.size.height*sliderValue); 
[markImage drawInRect:rect]; 

EDIT

CGFloat width = markerImage.size.width*sliderValue; 
CGFloat height = markerImage.size.height*sliderValue; 

CGRect rect = CGRectMake((markerImage.size.width-width)/2,(markerImage.size.height-height)/2, width, height); 
[markImage drawInRect:rect]; 
+0

это работает, но мои будет поместить изображение в левом верхнем углу Ii хочет это в середине – Johnykutty

+1

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