Tag: uiscrollview

用垂直平移手势水平滚动UIScrollView

我试图实现一个UIScrollView水平平移滚动浏览图片的滚动视图,但垂直平移执行另一个行动,我有。 现在我有一个UIScrollView的分页与垂直滚动禁用,适用于滚动通过图片工作得很好,但是要疯狂试图find一种方法来拦截垂直平底锅,并调用我自己的方法,而不是垂直平底锅只是被吃掉scrollview。 我能做到 UIPanGestureRecognizer *panUp = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)]; [self.scrollView addGestureRecognizer:panUp]; [scrollView.panGestureRecognizer setEnabled:NO]; 这使我可以完全控制我的handlePanGesture:方法中的平移,但这并不是特别有用,因为那样我觉得我基本上会重写所有我试图避免的滚动逻辑。 任何帮助或指导如何实现这一点,将不胜感激。 谢谢!

检测到UIScrollview底部到达

我有一个UIScrollView与图像,当用户滚动到滚动视图的结尾,我想更新的内容。 这是我的代码来检测何时到达滚动视图的底部: 下面的代码在scrollViewDidScroll: delegate中实现 CGFloat scrollViewHeight = imagesScrollView.bounds.size.height; CGFloat scrollContentSizeHeight = imagesScrollView.contentSize.height; CGFloat bottomInset = imagesScrollView.contentInset.bottom; CGFloat scrollViewBottomOffset = scrollContentSizeHeight + bottomInset – scrollViewHeight; if(imagesScrollView.contentOffset.y > scrollViewBottomOffset){ [imagesView addSubview:imagesBottomLoadingView]; [self downloadImages]; } 我的问题是,当用户滚动到底部,我的函数被调用了几次,但我只想调用一次。 我尝试用imagesScrollView.contentOffset.y == scrollViewBottomOffset,但它不起作用,并没有调用该函数

是否有可能在UIScrollView放大和缩小UIImageView,但坚持自动布局居中?

长话短说,我正在尝试构build类似于Photos.app的function。 我有一个UIImageView里面的UIScrollView设置在故事板中。 缩放的作品,但我无法保持居中。 在我所有基于框架的滚动视图实现中,我已经将它集中为如下,这很好地工作: – (void)scrollViewDidZoom:(UIScrollView *)scrollView { CGRect newImageViewFrame = self.imageView.frame; // Center horizontally if (newImageViewFrame.size.width < CGRectGetWidth(scrollView.bounds)) { newImageViewFrame.origin.x = (CGRectGetWidth(scrollView.bounds) – CGRectGetWidth(self.imageView.frame)) / 2; } else { newImageViewFrame.origin.x = 0; } // Center vertically if (newImageViewFrame.size.height < CGRectGetHeight(scrollView.bounds)) { newImageViewFrame.origin.y = (CGRectGetHeight(scrollView.bounds) – CGRectGetHeight(self.imageView.frame)) / 2; } else { newImageViewFrame.origin.y = 0; […]

如何在UIScrollView中实现不可滚动的UICollectionView?

简而言之,我所需的屏幕布局基本上是一个用户configuration文件(iOS 7 + Xcode 5)。 我用UIScrollView作为顶层视图。 原因是我想要滚动它的所有子视图 (用户信息视图 – 一个configuration文件图像和一些button,你在屏幕上看到的,和照片集合视图 – 一个黑色的背景)。 黑色背景的地区将显示用户照片。 我想知道是否可以在这里使用UICollectionView,或者有更好的方法来实现它。 在这种情况下,UICollectionView不应该能够自己滚动,它只显示所有单元格,而滚动工作由最外层的UIScrollView处理。 我读了以下post: UIScrollView里面的UICollectionView UIScrollView中的UICollectionView – >滚动顺序 滚动视图中的iOS 7集合视图 有人说,在UIScrollView中实现UICollectionView是不可能的(或者至less是奇怪的),因为UIScrollView是UICollectionView的超类,这会导致意外的行为。 有人说应该以另一种方式来实施(但我没有看到明确的build议)。

在UIScrollView的UITableView – 如何使视图滚动,而不是本身的TableView?

想象一下,UIViewController中有一个UIScrollView。 在视图的顶部有一个UIImageView,一些UILabels和其他东西。 此外,还有一个UITableView,其内容是dynamic原型。 我附上一张照片来说明: 我没有在UITableView静态数量的单元格,所以它可以滚动。 我的问题是以下几点:UITableView自身滚动,但我想滚动整个视图。 什么是最好的可能性呢? 我今天创build的可能的解决scheme 1)第一件事是:我创build一个UITableViewController并声明一个标题部分,我包含了所有的标签,图像等编程(我喜欢使用界面生成器…) 2)另一个解决scheme是计算视图的高度。 我尽力这样做 – 但是:没有成功。 如果这是做到这一点的最好方法:谁能举个例子吗?

缩短UIScrollView中的触摸延迟?

我正在寻找缩短UIScrollView触摸延迟,但我不想使用setDelaysContentTouches:NO; 我仍然希望稍微延迟一些,但是我的用户抱怨这个时间太长了。 有没有办法做到这一点?

如何截取UIScrollView可见区域的截图?

如何获取UIScrollView可见区域的1:1截图? 内容可能大于或小于UIScrollView边界以及半隐藏(我已经实现了自定义滚动较小的内容,所以它不在左上angular)。 我已经在模拟器上达到了预期的效果,但是在设备本身没有达到: -(UIImage *)imageFromCombinedContext:(UIView *)background { UIImage *image; CGRect vis = background.bounds; CGSize size = vis.size; UIGraphicsBeginImageContext(size); [background.layer affineTransform]; [background.layer renderInontext:UIGraphicsGetCurrentContext()]; image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); CGImageRef imref = CGImageCreateWithImageInRect([image CGImage], vis); image = [UIImage imageWithCGImage:imref]; CGImageRelease(imref); return image; }

iPhone:在透明的UIScrollView后面点击view

我有一个UIScrollView被设置为具有清晰的背景。 部分scrollview有内容,但部分不(因此它显示其他视图)。 我希望能够点击UIScrollView和后面的MKMapView,但只能用于UIScrollView的透明部分。 我发现了一些代码,我真的很难理解如何工作: – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if (![self yourMethodThatDeterminesInterestingTouches:touches withEvent:event]) [self.nextResponder touchesBegan:touches withEvent:event]; } 有人能帮我把我的想法包括在如何将一个触摸事件转发到另一个视图背后的视图吗? 我可以调用 – (void)touchesBegan:(NSSet *)从UIViewController触及事件:(UIEvent *)事件?

将垂直滚动从UIScrollView转移到兄弟UITableView

我有一个视图控制器与这个层次结构: 视图控制器: UIScrollView(水平滚动) UITableView(可垂直滚动) 我想将垂直滚动从我的UIScrollView转发到兄弟UITableView ,以便当用户在UIScrollView上滚动时, UITableView将向上滚动。 什么是最好的办法呢? 我试过这些: 检测scrollViewDidScroll的垂直滚动,它不会被调用,因为滚动视图的contentOffset不会更改。 子类UIScrollView和重写touchesMoved ,我不能转发触摸到表视图,因为我没有在这个类的引用。

如何从模态转换返回后重置我的UIScrollView的位置?

我有一个简单的视图,包含一个很长的视图与许多button,整个东西在一个UIScrollView 。 scroller工作正常,我可以scroll到底部,然后单击button 。 每个button触发一个模式seque to另一个view 。 这个新的view然后被用户交互解散,导致原来的UIScrollView's view再次加载。 这里的问题是:如果我点击一个button到UIScrollView的顶部,我input模式segue ,closures新的view ,并返回到UIScrollView's view没有问题。 但是,如果我点击UIScrollView底部的button之一,当我返回seque出,然后转换回来,我的滚动都搞砸了。 我只能看到我的scroller 下面的区域,不能再scroll到顶端了! 我敢肯定,必须有一些方法来重置UIScrollView's ViewWillAppear UIScrollView's起点和终点,但我无法弄清楚。 任何帮助表示赞赏! 另外,仅供参考,我只是通过接口生成器添加了UIScrollView ,并没有在任何地方实现或合成它。