我需要的是这样的如何在一个UIScrollView非滚动内容
+ scrollview
|
|__ moving content
|
|__ non moving content
棘手的部分是我在修改现有的代码,我不能使用 父滚动视图设置“不移动的内容”,因为它是孩子。非移动内容 必须是滚动视图子项。我正在考虑将它附加到背景视图,但我不知道如何访问UIScrollview的背景视图。
我需要的是这样的如何在一个UIScrollView非滚动内容
+ scrollview
|
|__ moving content
|
|__ non moving content
棘手的部分是我在修改现有的代码,我不能使用 父滚动视图设置“不移动的内容”,因为它是孩子。非移动内容 必须是滚动视图子项。我正在考虑将它附加到背景视图,但我不知道如何访问UIScrollview的背景视图。
我相信这样做的“推荐”方法是覆盖自定义UIScrollView子类中的layoutSubviews。如果您是开发人员计划成员,那么在2010年WWDC会议中,您应该能够获得这一点(IIRC)。
假设您不能继承UIScrollView的子类(根据您对修改现有代码的限制),您可以执行以下操作。
让“staticView”是“非移动内容”您想保留固定:
UIView *staticView;
创建伊娃(可能是在您的视图控制器),以保持其初始中心:
CGPoint staticViewDefaultCenter = [staticView center]; // Say, in viewDidLoad
如果您的视图控制器不是已经存在的滚动视图的代表,请执行如下操作:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint contentOffset = [scrollView contentOffset];
CGPoint newCenter = CGPointMake(staticViewDefaultCenter.x + contentOffset.x,
staticViewDefaultCenter.y + contentOffset.y);
[staticView setCenter:newCenter];
}
这将涵盖可滚动视图的简单情况。处理可缩放视图会有点棘手,并且部分取决于你如何实现了viewForZoomingInScrollView:方法,但是遵循类似的过程(当然在scrollViewDidZoom中这一次:当然)。
我还没有想过通过在你的静态视图上进行转换的含义 - 在这种情况下你可能还得做一些操作。