Нарисуйте фигуру в QuartzView нажатием кнопки в симуляторе iPhone.

Я хочу нарисовать простую фигуру в симуляторе iPhone при нажатии кнопки. Я могу нарисовать его на экране с помощью QuartzView без создания события для кнопки. Однако я хочу нарисовать фигуру одним нажатием кнопки при генерации события. Я попытался написать метод IBAction для кнопки как в QuartzView, так и в UIViewController. Однако я не могу создать событие. Может кто поможет?


person meghaljani    schedule 20.11.2011    source источник


Ответы (2)


напишите следующий код внутри файла viewcontroller. Это будет работать:-

-(IBAction) getLine:(id) sender{
    CGPoint currentPoint;
    currentPoint.x=45;
    currentPoint.y=458;
    lastPoint.x=445;
    lastPoint.y=534;
    UIGraphicsBeginImageContext(self.drawImage.frame.size);
    [drawImage.image drawInRect:CGRectMake(0, 0, self.drawImage.frame.size.width, self.drawImage.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.5, 0.6, 1.0);
    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

}

Не стесняйтесь спрашивать о чем-нибудь еще.

person Anil Kothari    schedule 21.11.2011
comment
Метод drawImage выдает ошибку все три раза, когда я использовал его во ViewController. Как вы написали метод drawImage? Ошибка заключалась в том, что свойство drawImage не было найдено в ViewController. - person meghaljani; 22.11.2011
comment
drawimage - это не метод. это экземпляр UIImageView. поэтому создайте экземпляр UIImageView в файле .h .... IBOutlet UIImageView * drawImage; Перетащите UIImageView из библиотеки объектов в представление. Выполните сопоставление между UIImageView и drawImage. Я создал такой тип приложения, чтобы оно определенно работало. Просто попробуйте еще раз. Сообщите, возникла ли проблема. - person Anil Kothari; 22.11.2011
comment
Точнее, drawImage как есть - это свойство, указывающее на UIImageView. Если вы не хотите создавать свойство, просто удалите его. и все будет хорошо. Я также добавил объявление для CGPoint lastPoint; в конце концов, этот быстрый пример кода был именно тем, что я искал! - person Daniel Monteiro; 24.02.2013

Вам нужно убедиться, что ваш IBAction для кнопки выглядит так:

- (IBAction)buttonPressed:(id)sender {

}

с соответствующим

- (IBAction)buttonPressed:(id)sender;

в шапке. Затем он должен появиться как выход в Интерфейсном Разработчике.

person jrtc27    schedule 21.11.2011
comment
Я сделал это как в viewcontroller, так и в quartzview; это не работает. - person meghaljani; 21.11.2011
comment
Правильно ли вы установили владельцем файла свой собственный класс вместо общего в IB? - person jrtc27; 21.11.2011
comment
Да, я сделал. IBAction связано с кнопкой. Проблема в том, что QuartzView и ViewController не могут обмениваться данными. - person meghaljani; 22.11.2011
comment
Является ли quartzview подвидом контроллера представления? Это добавлено в ИБ или программно? - person jrtc27; 22.11.2011