내 애플리케이션은 간단한 그림의 드로잉을 수행 할 수 있습니다 (보다 안정적인 코드를 얻을 때까지 한 개의 그림 만 사용하고 있습니다). 또한 크기를 재조정 할 수 있습니다. (100.0f, 100.0f)의 입력 크기, 저를 제공UIView 드로잉 모범 사례
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
[self setContextFillColor:context];
[self setContextStrokeColor:context];
[self setLineWidth:context];
CGFloat lineThickness = [self lineWidth] ;
CGFloat halfLineThickess = lineThickness/2.0f;
CGContextAddRect(context, CGRectMake(halfLineThickess,halfLineThickess, rect.size.width - lineThickness, rect.size.height - lineThickness));
CGContextDrawPath(context, kCGPathEOFillStroke);
}
은이 :
이이 그림은 내가 UIView
을 만드는 데 사용하는 코드는 다음과 같다 내부는 "컨테이너"UIView
이고, 차례로 UIScrollView
입니다. 내 문제는 내 크기를 재조정 할 때 약 1000 * 1000 (내 "컨테이너"가 20,000 * 20,000) 크기에 도달하면 메모리 경고를 받기 시작하고 응용 프로그램이 결국 포기합니다. 따라서 내 질문은 다음과 같습니다.
1) UIView
의 최대 크기를 입력해야합니까?
2) 계기를 사용하여 이러한 종류의 문제를 추적하고 문제가 어디서 발생하는지 (또는 무거운 작업이 어디에서 이루어지고 있는지) 어떻게 확인할 수 있습니까?
3) 어떤 종류의 캐싱을 this과 같이 사용해야합니까?
4) UIView
을 그릴 때 고려해야 할 사항은 모범 사례입니까?이 있습니까?
5) 내가 만져야 할 것이지만 CALayer
을 고려해야합니까?
UIView
의 크기 조정은 주로 this을 기준으로합니다.
QuartzCore 사용을 고려해 보았고보기의 레이어 속성을 사용하여 테두리를 그렸습니까? – runmad
것은 : 이것은 간단한 그림입니다. 결국 나는 더 복잡한 것들을 가질 것이고, 나는'UIView'의 속성으로 놀아서도 충분하지 않을 것이라고 생각합니다. 그러나 제안에 감사드립니다. – Peres
대용량 콘텐츠 (확대/축소)를 그릴 필요가있는 경우 'CATiledLayer'를 확인하고 싶을 수도 있습니다. http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CATiledLayer_class/Introduction/Introduction.html – Bastian