2010-08-15 4 views
1

더 많은 정보를 얻기 위해 UIButtons로 이벤트를 표시하는 타임 라인보기를 만들려고합니다.UIScrollView는 수평으로 확대/축소 할 수 있지만 수직으로 확대/축소 할 수 없습니까? (how)

이상적으로 나는 UIScrollView에 버튼을 배치하고 수직으로 늘리거나 줄이는 것을 허용하고 싶습니다.

콘텐츠 뷰의 크기를 조정하고 좌우로 이동하기 위해 스크롤 뷰를 사용하여 핀치 제스처를 사용하는 것과 기본적으로 같을 것입니다. 올바른 방향으로 나를 가리키거나 어떻게 할 것인지 제안 할 수 있습니까? 이런 식으로 뭔가를 성취합니까?

내 첫 번째 생각은 UIView 하위보기를 확장하고 UIView 하위보기에 세로로 크기를 조정하지 않고 가로 스크롤을 사용하여 세로 스크롤을 사용하지 않는 다른 하위보기를 포함하는 UIScrollView입니다. 아마 이러한 UIView 하위 뷰 중 하나를 건너 뛸 수 있고 오직 하나만 모든 작업을 수행 할 수 있습니다. HTML 페이지 나 이와 같은 모든 컨테이너와 함께 해킹하려고하는 것처럼 느껴집니다.

내가 이것에 대해 충분히 설명해 주 었는지 확실하지 않은 경우 답변을 받기를 바랍니다. 그러나 도움이 필요합니다.

답변

-1

실제로 버튼 텍스트를 늘리거나 줄이려하지 않는다고 가정 할 때 가장 쉬운 방법은 모든 버튼의 크기를 조정하는 것입니다. 알아, 통증이야.

+0

이것은 결국 가장 좋은 방법이었습니다. 내가 예상했던 것만 큼 어려운 것은 아니 었습니다. 힘든 부분은 화면을 추가하는 방법을 생각하고 화면이 모두 겹쳐지면 화면을 벗어나는 것을 제거하는 것이 었습니다. –

0

시도하지 않았지만 모든 것을 UIScrollView에 넣으려고 시도 할 수 있으며 확대/축소 수준 변경을 감지 할 때마다 모든 하위보기 변환을 CGAffineTransformMakeScale(1.0, 1.0/zoomLevel)으로 조정하십시오. 이렇게하면 scrollview가 모든 것을 확대하고 있지만 각 하위보기가 수직으로 아래쪽으로 크기 조정되어 확대/축소가 취소됩니다.

+0

나는 올바른 길을 가고 있다고 생각하지만, 내 노력은 아직 효과가 없습니다. subviews 에이 affine 변환을 설정? –

+0

'scrollViewDidZoom' 델리게이트 콜백에서. 비록 그것을 시도하지 않았습니다. – Jason

+0

죄송합니다. 서브 뷰에서 어떤 선택기를 호출해야합니까? 예 : [subview setSomething : CGAffineTransformMakeScale (1.0, 1.0/zoomLevel)]; –

8

나는 수평 전용있는 UIScrollView 스케일 변경 될 때마다 간단하게 사용해 setTransform을 무시하고 1로 Y 스케일을 설정하여 UIView의 하위 클래스를 만들어 확장 구현했습니다 : 클래스 이름에서 알 수 있듯이

@interface DiagramStripView : UIView { } 
@end 

@implementation DiagramStripView 

- (void)setTransform:(CGAffineTransform)newValue; 
{ 
    newValue.d = 1.0; 
    [super setTransform:newValue]; 
} 

@end 

을 내 보기에는 각각 한 화면 폭의 일련의 다이어그램이 있습니다. 사용자가 이동 시키면 뷰 컨트롤러는 뷰의 눈금을 1로 재설정하고 모든 것을 새로운 눈금으로 다시 그립니다.

- (void) scrollViewDidEndZooming:(UIScrollView *)scrollView 
         withView:(UIView *)view atScale:(float)scale 
{ 
    diagramStripView.transform = CGAffineTransformIdentity; 
    [self redrawDiagrams:scale]; 
} 
+0

이 기술을 타일링 된 뷰 (확대/축소보기)와 함께 사용하면 정말 필요한 수평선을 확대/축소 할 수있는 타임 라인 뷰를 얻을 수 있습니다. – CaseyB

관련 문제