2010-04-03 77 views

回答

1

在IB:

  1. 使頂部和底部的觀點。
  2. 選擇底部視圖,然後選擇佈局→嵌入對象在→滾動視圖。
  3. 選擇頂部和底部視圖,然後選擇佈局→將對象嵌入到分割視圖。
0

我製作了TUSplitSyncScrollView,如下圖所示。

enter image description here enter image description here enter image description here

在這段代碼中,我用國際志願者組織觀察其他窗口的行爲如下:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context; 
{ 
    if (keyPath == @"observedPresentScale") { 
     // 自身のzoomScaleに監視しているobservedPresentScaleの値を代入する 
     // まず拡大縮小可能にする 
     self.maximumZoomScale = 1000.0; 
     self.minimumZoomScale = 0.001; 
     self.zoomScale = [change[@"new"] floatValue]; 
     // ここで拡大縮小禁止にする 
     self.maximumZoomScale = self.zoomScale; 
     self.minimumZoomScale = self.zoomScale; 
     printf("zoomScale = %f\n", self.zoomScale); 
    } 
    else if (keyPath == @"observedContentOffsetY") { 
     self.contentOffset = CGPointMake(self.contentOffset.x, [change[@"new"] floatValue]); 
    } 
} 

且兩個視圖觀察對方。

int opt = NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew; 

// rightSplitedScrollViewをleftSplitedScrollViewのオブザーバにする 
[leftSplitedScrollView addObserver:rightSplitedScrollView forKeyPath:@"observedPresentScale" options:opt context:NULL]; 
[leftSplitedScrollView addObserver:rightSplitedScrollView forKeyPath:@"observedContentOffsetY" options:opt context:NULL]; 

// leftSplitedScrollViewをrightSplitedScrollViewのオブザーバにする 
[rightSplitedScrollView addObserver:leftSplitedScrollView forKeyPath:@"observedContentOffsetY" options:opt context:NULL]; 
// [rightSplitedScrollView addObserver:leftSplitedScrollView forKeyPath:@"observedPresentScale" options:opt context:NULL]; 

從這裏你可以運行的實際項目:https://github.com/weed/TUSplitSyncScrollView

相關問題