2012-09-16 2 views
1

사각형의 4x4 격자를 만들려고합니다. (각 칸은 약간의 공백으로 구분됩니다). 사용자가 하나의 사각형에서 다른 사각형으로 그의 팬을 움직이면 사각형을 강조 표시하고 사각형 사이에 선을 그려 (연결되었음을 나타 내기 위해).UIView 레이아웃에 대한 제안

GridView 사용자 정의 UIView와 16 개의 자식 GridElement 사용자 정의 UIView를 4x4로 배치했으며 팬 제스처를 사용하여 사각형과 drawline을 선택합니다. 그게 올바른 진행 방법인가요?

응답 해 주셔서 감사합니다. 그래서 당신이 제안한 것을 시도했습니다. 이제 UIControl의 개별 사각형 사각형 하위 클래스를 만들고 포함 된 뷰가 해당 작업의 대상입니다. 내 포함 된보기 UIView 하위 클래스입니다. 포함하는보기는 UIControlEventTouchDown 이벤트를 수신하지만 UIControlEventTouchDragExit를 수신하거나 내 ContainerView에서

- (void) sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event { 
    [super sendAction:action to:target forEvent:event]; 
} 

- (void) sendActionsForControlEvents:(UIControlEvents)controlEvents { 
    [super sendActionsForControlEvents:controlEvents]; 
} 

- (BOOL) beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { 
    return YES; 
} 

- (BOOL) continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { 
    return YES; 
} 

를 (입력)하지 않는 손가락이 충분로 이동되면 나는

[gridElement addTarget:self action:@selector(elementSelected:)forControlEvents:UIControlEventTouchDragEnter]; 
+0

새로운 UICollectionViewController 문서를 확인하셨습니까? – Jamie

+0

물론, 아직 베타 9 월 19 일이므로 개발자 정보가 필요할 때까지이 정보에 액세스해야합니다. – Jamie

+0

@Jamie는 (쉬운) 그리드 파트 만 돕고, (더 어려운) 대화 파트는 도움이되지 않습니다. – jrturton

답변

2

이것은 첫 번째 사각형을 선택합니다 있습니다 팬을 고려하면 첫 번째 터치를 받기 위해 다른 인식기를 추가해야 할 수도 있습니다.

내가 이것을하고 있다면, 나는 다르게 접근 할 것이다. 개별 그리드 사각형 UIControl 서브 클래스를 만들고 포함 된 뷰를 해당 작업의 대상으로 만들 수 있습니다. UIControls는 이미 내부 터치, 입력 된 터치 드래그, 내부 위로 터치 등의 이벤트에 응답합니다.이 이벤트를 포함 된보기로 전달하고 사용자가 손가락을 움직일 때마다 적절하게 선을 강조/그릴 수 있습니다.

+0

아래 추가 질문보기 –

관련 문제