단추를 건 드리면 dataBuffer를 사용하여 UIImage에 선을 그리려고하는데 drawRect : .. methode가 호출되지 않습니다. (그래서, 내가 그려야 할 선은 나타나지 않습니다.)UIImage에 대한 setNeedsDisplay가 작동하지 않습니다.
정말 어디에 문제가 있는지 모릅니다. 그래서 꽤 많은 코드를 게시했습니다. 미안합니다.
그건 그렇고, 나는 viewbasedapplication에 노력하고 있습니다.
-(void) viewDidLoad{
UIImage *image = [UIImage imageNamed:@"playView2.jpg"];
[playView setImage:image];
[image retain];
offScreenBuffer = [self setupBuffer];
}
- (IBAction)buttonTouched:(id)sender {
[self drawToBuffer];
[playView setNeedsDisplay];
}
- (void)drawRect:(CGRect)rect{
CGImageRef cgImage = CGBitmapContextCreateImage(offScreenBuffer);
UIImage *uiImage = [[UIImage alloc] initWithCGImage:cgImage];
CGImageRelease(cgImage);
[uiImage drawInRect: playView.bounds];
[uiImage release];
}
-(void)drawToBuffer {
// Red Gr Blu Alpha
CGFloat color[4] = {1.0, 1.0, 0.0, 1.0};
CGContextSetRGBStrokeColor(offScreenBuffer, color[0], color[1], color[2], color[3]);
CGContextBeginPath(offScreenBuffer);
CGContextSetLineWidth(offScreenBuffer, 10.0);
CGContextSetLineCap(offScreenBuffer, kCGLineCapRound);
CGContextMoveToPoint(offScreenBuffer, 30,40);
CGContextAddLineToPoint(offScreenBuffer, 150,150);
CGContextDrawPath(offScreenBuffer, kCGPathStroke);
}
-(CGContextRef)setupBuffer{
CGSize size = playView.bounds.size;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, size.width, size.height, 8, size.width*4, colorSpace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorSpace);
return context;
}
아, 죄송하지만이 점을 잊어 버렸습니다. 하지만 모든 코드는 viewcontroller.m에 있고 playView는 UIImageView입니다. ;-) hmmm ok, UIImageView를 UIView 하위 클래스로 변경하는 것 외에 다른 방법은 없습니다. UIImageView를 기반으로 가능한 코드가 많기 때문에 가능하면 변경하지 않으려 고합니다. : D – Kito
글쎄 버퍼링으로 달성하고자하는 개성이 확실하지 않지만 버퍼 된 이미지를 이미지보기로 전달하거나 이미지보기의 하위보기 인 줄을 별도로 볼 수도 있고 하위 클래스 uiimageview, 좋은 생각인지 모르겠지만. – jrturton
실제로 실제로, 나는 이것을하고 싶다 : (나의 더 오래된 포스트 중 하나) http://stackoverflow.com/questions/7547807/how-to-set-rgba-color-of-a-pixel-of-an -uiimage 그러나 나는 그것을하는 법을 정말로 모른다 : P 당신은 이것에 대해 좋은 생각을 가지고 있지 않습니까 ??? : D – Kito