Нарисуйте ограничения изображения - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть изображение, изображение в этом изображении для вас, чтобы выбрать из фотоллара.У меня также есть кнопка, когда вы нажимаете эту кнопку, к представлению добавляется изображение с кодом addSubview.Этот фрагмент изображения можно перетаскивать, изменять размер и вращать.

Одна проблема, когда я заканчиваю изображение, я использую метод drawInRect.Это рисует все слои друг на друга и создает изображение.Однако слои находятся не в том месте и имеют неправильный размер.Это также никогда не вращается.Я не знаю, как это исправить, кусок кода находится под этим текстом.Можно ли сохранить исходный размер изображения и по-прежнему рисовать слои в том же месте, где я перетаскиваю их на просмотр изображений, если нет, то как мне создать для этого новый размер и получить желаемый результат.И как мне нарисовать повернутое изображение.

UIGraphicsBeginImageContext(imageView2.image.size);    
// Draw image1
[imageView2.image drawInRect:CGRectMake(0, 0, imageView2.image.size.width, imageView2.image.size.height)];    
// Draw image2
for(UIImageView *viewsSub in [self.imageViewer subviews])
{            
    [viewsSub.image drawInRect:CGRectMake(viewsSub.frame.origin.x, viewsSub.frame.origin.y, viewsSub.frame.size.width, viewsSub.frame.size.height)];
}    
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();    
pld.imageChosen2 = resultingImage;    
UIGraphicsEndImageContext();

1 Ответ

0 голосов
/ 16 февраля 2012

Итак, вы хотите сделать что-то вроде «скриншота» вашего фактического изображения (с включенными подпредставлениями), не так ли?

Я использовал этот фрагмент кода, чтобы сделать что-то подобное, но не знаю, сработает ли это для вас.

     - (UIImage *)screenshot {
        CGFloat scale = [UIScreen screenScale];

        if(scale > 1.5) {
            UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, scale);
        } else {
            UIGraphicsBeginImageContext(self.frame.size);
        }
        [self.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return screenshot; 
}

Вы должны добавить этот метод в ваше представление изображения (которое содержит все добавляемые вами подпредставления).

...