Изменить размер UIImageView после завершения рисования - PullRequest
0 голосов
/ 15 марта 2012

Я пытаюсь нарисовать линию в моем приложении. Сначала я устанавливаю размер окна рисования как размер моего вида. После окончания рисования я хочу изменить размер UIImageView, чтобы вокруг рисунка не было пустых мест. Есть ли возможность автоматического изменения размера UIImageView, например sizeToFit в UILabel?

   UIGraphicsBeginImageContext(self.vwDesktop.frame.size);
    [drawImage.image drawInRect:CGRectMake(0, 0, self.vwDesktop.frame.size.width, self.vwDesktop.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 10.0);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0);
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    CGContextFlush(UIGraphicsGetCurrentContext());
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    drawImage.userInteractionEnabled = YES;

1 Ответ

0 голосов
/ 15 марта 2012

Если я правильно понимаю ваш вопрос, это свойство contentMode в UIView (и, следовательно, UIImageView, которое вы хотите? Это будет определять размер изображения в соответствии с видом.

Кроме того, вам не нужно вызывать UIGraphicsGetCurrentContext() в каждой из ваших основных графических функций. Почему бы просто не сохранить контекст в локальной переменной:

CGContextRef ctx = UIGraphicsGetCurrentContext();

и использовать это CGContextRef каждый развам нужно обратиться к текущему контексту?

Однако мне кажется, что вы можете просто сделать все это внутри UIView drawRect метода, не имея дело с созданием контекста изображения,если по какой-то причине вы не хотите сохранить UIImage линии, которую вы рисуете.

...