Tag: uiscrollview

UIScrollView和内容需要触摸移动事件

我有一个使用单点触摸事件(单指)进行绘制的视图(线条,循环,文本等)。 现在我想把这个视图放在UIScrollView中,这将允许缩放和平移。 当然,两个手指都需要执行缩放和平移。 这种模式是做什么的? 我发现只有当UIScrollView的内容只接受单击(它只包含一个button)的例子。 当内容需要时,什么也没有做什么接触移动。

带有大型CATiledLayer的UIScrollView +渲染速度快的Overlay

我一直在努力工作几个星期(iOS),我似乎无法找出一个可以接受的解决scheme。 要求 显示一个10000×10000像素的背景图像 缩放和滚动响应 覆盖在具有自定义绘图的顶部 叠加中的元素是交互式的(点击和突出显示元素等),可以打开或closures棋子。 iOS 4.0 把它想象成一个虚构的小镇的地理地图,在上面绘制一个疯狂的道路,线路,区域和build筑系统。 CGPaths与各种不透明的填充,一些图标图像等混合物。这就像一个更复杂的谷歌地图应用程序的版本。 我试过了: 1 – 多个CATiled图层 查看层次结构: 滚动型 – > ContainerView – > TiledView(CATiledLayer 10000×10000) —> OverlayView(CATiledLayer 10000×10000) 结果:从魔法苹果caching中左右丢弃瓦片。 两个CATiledlayers似乎不是正确的道路。 更新重叠不是很快。 2 – 用于OverlayView的子类TiledView 查看层次结构: 滚动型 – > OverlayView(TiledView CATiledLayer 10000×10000的子类) 结果:渲染覆盖的更新时间过长。 慢点更新瓷砖 3 – 滚动视图w /一个容器视图 查看层次结构: 滚动型 – > ContainerView(10000×10000) – > OverlayView(CALayer 10000×10000) – […]

嵌套滚动。 自动滚动一个接一个到达终点

我有一个嵌套的滚动视图的情况, mainView-> ScrollView1-> ScrollView3(有很多的ScrollView垂直) *我想,当用户向下滚动时,首先scrollView1将滚动拖动显示的childScrollView3 (与scrollView2的用户交互以及滚动应该被禁用)* 2)*在它结束后, childScrollView3将以与scrollView1滚动相同的速度滚动?* 当用户向下滚动时,应该会发生同样的情况,即childScrollView3将首先到达其结尾,然后scrollView1应滚动到顶部。 UPDATE 马克 – 我search谷歌视差,但没有什么帮助,因为我有一个分页滚动视图与多个垂直子滚动。

UIScrollView不滚动

我有一个UIScrollView根本不滚动。 如果我启用了弹跳function,我可以向两边滚动足够多,以便看到视图外面有内容,但是当我释放时,它会直接回到原点。 我打开了分页,但是如果closures它,我会得到相同的行为。 我有自动布局closures。 在IB中,scrollView位于MainViewController中,正确连接到IBOutlet,如下所示。 @interface MainViewController () @property (strong, nonatomic) IBOutlet UIScrollView *scrollView; @end @implementation MainViewController – (void)viewDidLoad { [super viewDidLoad]; for (int i = 0; i < 3; i++) { CGRect frame; frame.origin.x = self.scrollView.frame.size.width * i; frame.origin.y = 0; frame.size = self.scrollView.frame.size; // I might be doing this wrong, but it returns […]

UIScrollView setContentSize使用未捕获的NSRangeException崩溃

一些UIScrollView的内容被删除后,调用setContentSize会使应用程序崩溃。 int toolbarHeight = [[[self navigationController] toolbar] frame].size.height; int navbarHeight = [[[self navigationController] navigationBar] frame].size.height; int totalHeight = toolbarHeight + navbarHeight; // contentWidth is 640 CGSize contentSize = CGSizeMake(contentWidth, [scrollView frame].size.height – totalHeight); [scrollView setContentSize:contentSize]; // Crash happens here, contentSize is perfectly valid *由于未捕获exception'NSRangeException',原因:'* – [__ NSArrayM objectAtIndex:]:index 1 beyond bounds [0 .. 0]' 什么可能导致这个? […]

animationUIView框架,子视图UIScrollView并不总是animation

在这个例子中。 当我为tabBarController设置animation效果(用于全屏效果)时,我正在animationPhotoViewerViewController的框架。 PhotoViewer使用uiscrollview生成苹果的照片应用程序所具有的同样的效果。 无论出于什么原因,有时它会随着我的PhotoViewer框架一起animation,有时它不会。 您可以在第一个示例中看到在增加帧大小时跳转,但在减小帧大小(并恢复标签栏)时可以很好地进行animation处理。 但是在这个例子中,当照片是垂直的时候,它会在两个方向上跳跃。 在这两种情况下,如果我使用滚动视图放大照片,它将在两个方向上正确animation。 我知道有证据,但是我不能把手指放在这里发生的事情上。 这是我的animation块: void (^updateProperties) (void) = ^ { self.navigationController.navigationBar.alpha = hidden ? 0.0f : 1.0f; self.navigationController.toolbar.alpha = hidden ? 0.0f : 1.0f; if (self.tabBarController) { int height = self.tabBarController.tabBar.bounds.size.height; for(UIView *view in self.tabBarController.view.subviews) { int newHeight; UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; if (UIInterfaceOrientationIsPortrait(orientation)) { newHeight = hidden […]

iOS:滚动视图仅在出现键盘后才起作用

我做了滚动视图中有很多文本字段。 我添加了更新的TPKeyBoardAvoidingScrollView并将其添加到滚动视图的文件所有者中。 我在.h文件中添加了出口,在.m文件中合成并添加了行[self.view addSubview:scrollObject]; 问题是视图只有在键盘出现后才开始滚动。 视图加载后不会立即滚动。 任何解决scheme? 添加这些行并没有解决我的查询 scrollViewObj = [[UIScrollView alloc] init]; self.automaticallyAdjustsScrollViewInsets = NO; [scrollViewObj setScrollEnabled:YES]; scrollViewObj.maximumZoomScale = 4.0; scrollViewObj.minimumZoomScale = 0.75; scrollViewObj.clipsToBounds = YES;

垂直滚动视图与垂直导航冲突

在我的原生应用程序中,我使用了askonov的react-native-router-flux来显示一个带有垂直ScrollView小部件的场景。 我已经将场景configuration为从底部向上浮动,并且默认情况下,从顶部向下拖动可closures场景。 <Router> <Scene key="root" hideNavBar={true}> <Scene key="welcome" component={Welcome}/> <Scene key="demo" component={Demo} direction="vertical"/> </Scene> </Router> ScrollView包含的内容远远超过了屏幕上显示的内容,所以用户需要上下拖动。 不幸的是,从下拉到近景的行为似乎与ScrollView相冲突,所以当用户想要向上滚动时,他们无意中closures了场景。 具体来说 – 它看起来像轻弹手势正在被重写。 向上滑动不会像应该那样扔掉ScrollView内容,而向下滑动会closures场景。 这似乎是一个新的行为,因为我升级到了React Native 0.32。 当我在0.22的时候,向上挥动的手势仍然可以使ScrollView的内容消失。 理想情况下,如果ScrollView的内容已经完全滚动到顶部,我只想closures场景。 我会解决完全禁用滑动到closures行为。

UIScrollView以-ve原点缩小视图

我有一个UIScrollView。 在这个我有一个UIView有一个负面起源的框架 – 我需要限制滚动视图,以便您不能滚动整个视图.. 我在这个滚动视图中实现了缩放。 缩放滚动视图时,将根据比例尺调整Zoomable视图的大小。 但它不能调整原点。 所以如果我有一个框架{0,-500},{1000,1000} 我缩小到0.5的比例,这将给我一个{0,-500},{500,500}的新框架, 显然这不好,整个视图是缩小的滚动视图。 我想框架是{0,-250},{500,500} 我可以通过正确调整原点来修正scrollViewDidZoom方法中的一些问题。这确实有效,但缩放并不平滑。在这里更改原点会导致跳转。 我注意到在UIView它的文档(关于框架属性): 警告:如果transform属性不是标识转换,则此属性的值未定义,因此应予以忽略。 不太清楚这是为什么。 我接近这个问题错了吗? 解决这个问题的最好方法是什么? 谢谢 以下是我使用的testing应用程序的一些源代码: 在ViewController中 – (void)viewDidLoad { [super viewDidLoad]; self.bigView = [[BigView alloc] initWithFrame: CGRectMake(0, -400, 1000, 1000)]; [self.bigScroll addSubview: bigView]; self.bigScroll.delegate = self; self.bigScroll.minimumZoomScale = 0.2; self.bigScroll.maximumZoomScale = 5; self.bigScroll.contentSize = bigView.bounds.size; } -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return […]

如何将UIScrollView的触摸事件发送到它后面的视图?

我有一个透明的UIScrollView在另一个视图之上。 滚动视图具有内容 – 文本和图像,用于显示信息。 它背后的观点有一些图像,用户应该能够点击。 并使用所提到的滚动视图来滚动它们上的内容。 我希望能够正常使用滚动视图(尽pipe没有放大),但是当滚动视图实际上并没有滚动,让轻拍事件通过后面的视图。 使用触摸和滚动事件的组合我可以决定什么时候让水龙头通过。 但它背后的观点仍然没有得到它们。 我曾尝试使用类似的东西来处理所有触摸事件: – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"touchesBegan %@", (_isScrolling ? @"YES" : @"NO")); if(!_isScrolling) { NSLog(@"sending"); [self.viewBehind touchesBegan:touches withEvent:event]; } } 但它不起作用。 也是在我的情况下,我不能真正应用hitTest和pointInside解决scheme,给我的用例。