0

我有一个自定义视图,我想将其动态放置在拆分视图的底部视图上。我需要该底部视图的滚动视图。如何获得水平拆分视图底部视图的滚动视图?

请帮我解决这个问题。

在此先感谢 bp

4

2 回答 2

1

在 IB 中:

  1. 制作顶视图和底视图。
  2. 选择底部视图并选择布局→嵌入对象→滚动视图。
  3. 选择顶部和底部视图,然后选择布局 → 将对象嵌入 → 拆分视图。
于 2010-04-04T05:38:15.673 回答
0

我制作了如下图所示的 TUSplitSyncScrollView。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在这段代码中,我使用 KVO 来观察另一个窗口的行为,如下所示:

- (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

于 2013-07-18T03:19:12.510 回答