이미지, 텍스트 상자 등 ... 내부에 UIViewController가 포함 된 UIViewController가있는 iPhone에 내 앱이 있습니다. UIViewController 내부에서 직접 OpenGL을 사용하여 선을 그릴 수 있습니다. ?UIViewController를 통해 선 그리기
미리 감사드립니다.
이미지, 텍스트 상자 등 ... 내부에 UIViewController가 포함 된 UIViewController가있는 iPhone에 내 앱이 있습니다. UIViewController 내부에서 직접 OpenGL을 사용하여 선을 그릴 수 있습니다. ?UIViewController를 통해 선 그리기
미리 감사드립니다.
OpenGL에 대해 확실합니까?
일반 뷰보다 OpenGL을 사용할 수 없다고 생각합니다.
다른 뷰보다 위에있는 사용자 정의 뷰 (UIView에서 상속)를 추가하고 원하는 뷰를 그릴 수 있습니다.
이보기의 배경색은 투명해야합니다.
또한 다른보기 (탭 단추, 텍스트보기 편집, 스크롤 등)와 상호 작용하려면 사용자 정의보기에 hitTest 메소드를 구현하여 터치 이벤트를 해당보기로 전달해야합니다. 이 하나 아래에 위치하고 있습니다 ...
편집 : hitTest를 망치지 마십시오. 그냥 ...
편집을 XIB에 사용 가능 사용자 상호 작용의 선택을 취소 : 코드 샘플 :
@interface TransparentDrawingView : UIView {
CGPoint fromPoint;
CGPoint toPoint;
}
- (void)drawLineFrom:(CGPoint)from to:(CGPoint)to;
@end
@implementation TransparentDrawingView
- (void)initObject {
// Initialization code
[super setBackgroundColor:[UIColor clearColor]];
}
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
[self initObject];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aCoder {
if (self = [super initWithCoder:aCoder]) {
// Initialization code
[self initObject];
}
return self;
}
- (void)drawRect:(CGRect)rect {
// Drawing code
// Draw a line from 'fromPoint' to 'toPoint'
}
- (void)drawLineFrom:(CGPoint)from to:(CGPoint)to {
fromPoint = from;
toPoint = to;
// Refresh
[self setNeedsDisplay];
}
@end
Thanks Michael ... 내 목표는 이미지 위에 선을 그리는 것입니다. 감사합니다. – ghiboz
답안에 추가 한 코드 샘플을 참조하십시오. 이보기를 사용자 정의보기로 사용하면 나머지보기 위에 전체 창으로 확산됩니다. DrawRect : 메소드에서 드로잉 코드를 채우십시오 ... –
우선 당신의 UIView와의 UIViewController의 책임을 알아야한다고 생각합니다. UIView는 주로 그리기 (touchBegin, ToucheMove 오버라이드), 애니메이션 처리, 하위 뷰 관리 및 이벤트 처리를 담당합니다. UIViewController는 주로로드, 언로드 뷰 등을 담당합니다.
그래서 뷰 컨트롤러가 아닌 사용자 정의 된 뷰 (UIView)에서이 선을 그려야합니다.
두 번째 : 간단한 모양이나 선만 표시하면됩니다. UI 컨트롤과 이미지를 사용하는 것이 좋습니다. 'drawRect'조차도 더 많은 리소스를 사용하게되므로 권장하지 않습니다. 확실히 OpenGL은 많은 자원을 필요로합니다.
대답은 간단합니다. UIView를 확장하는 새로운 클래스를 만들고 drawRect 함수를 재정의해야 Quartz ...를 그리게됩니다. 그래디언트 배경을 원할 경우이 방법을 사용하십시오.
또한 Adobe Flex 4로 개발 중이며 iPhone 4 SDK에는 스킨 및 레이아웃 "패턴"(예 : UIView에 별도의 파일 ..이있을 수 있음) 및 레이아웃 (가로, 세로, 타일 ....)), 나를 위해 그것은 끔찍한 부족입니다!
오픈 소스 라이브러리 Three20이 iPhone SDK에 가져 오는 기능입니다.
왜 선을 그 으려면 그냥 OpenGL이 필요합니까? UIView를 사용하지 않는 이유는 무엇입니까? –
어떻게 이미지를 통해 UIViewController에 선을 그릴 수 있습니까? – ghiboz