Tag: uiscrollview

寻找在UIScrollView滚动的方向?

我有一个UIScrollView只允许水平滚动,我想知道用户滚动的方向(左,右)。 我所做的是touchesMoved UIScrollView并覆盖touchesMoved方法: – (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesMoved:touches withEvent:event]; UITouch *touch = [touches anyObject]; float now = [touch locationInView:self].x; float before = [touch previousLocationInView:self].x; NSLog(@"%f %f", before, now); if (now > before){ right = NO; NSLog(@"LEFT"); } else{ right = YES; NSLog(@"RIGHT"); } } 但是这个方法有时在我移动时根本不会被调用。 你怎么看?

我如何以编程方式强制停止在UIScrollView滚动?

注意: 这里给出的答案不适用于我。 我有一个UIScrollView(不是一个表视图,只是一个自定义的事情),当用户采取某些行动,我想杀死视图内的任何滚动(拖动或减速)。 我试过这样做: [scrollView scrollRectToVisible:CGRectInset([scrollView bounds], 10, 10) animated:NO]; 理论上说,给定一个已知的矩形,滚动将停止在原来的位置,但事实certificate这并没有任何效果 – 显然滚动视图看到给定的矩形处于界限内没有行动。 我可以让滚动停止,如果我给一个rect,肯定是在当前可见边界之外,但在视图的contentSize内部。 这似乎停止了预期的看法…但也导致它跳转到其他位置。 我大概可以在边缘玩一下,让这个工作合理的,但是有没有人知道一个干净的方法来停止正在做它的事情的滚动视图? 谢谢。

使用Interface Builder创buildUIScrollView的步骤

我正在尝试使用UIScrollView,似乎有一些基本的东西,我只是不理解。 比方说,我想在我的iPhone应用程序中使用UIScrollView。 我有一个充满了320x700button的视图。 显然,这对于320×480的iPhone来说太大了。 所以我知道我必须使用UIScrollView。 但是,这是我应该创造的对象的顺序 在“视图”中创build尺寸为320×700的UIScrollView 将所有的button等放在这个滚动视图上 在viewDidLoad中设置contentSize为320×700 将UIScrollView的委托设置为文件所有者,将FileOwner的视图设置为UIScrollView 将视图的大小重新设置为320×480。 这是正确的吗? 这有用,但对我来说没有意义。 我认为视图应该是canvas,我添加所有UI元素。 我想要iPhone应用程序的“canvas”为320×700,我希望能够把我的button等放在这个320×700的canvas上。 但是,如果我不将UIScrollView的大小更改回320×480,则不会滚动,因为我需要将UIScrollView的内容大小设置为大于其大小。 但是,如果我将UIScrollView的大小设置为320×480,那么在界面生成器中,我看不到屏幕和介于480和700之间的button! 所以看起来我应该进行所有编辑,并将所有UI元素添加到UIScrollView,然后将其重新设置为320×480! 有没有其他方法可以做到这一点更有意义? 我在理解这个应该如何工作时错过了什么?

我如何使用Autolayout在我的UIScrollview上设置约束?

我已经花了两天的时间尝试了混合和纯粹的Autolayout方法的各种解决scheme,以实现自动布局之前的一个微不足道的scrollview设置,现在是正式的 – 我一定是太愚蠢了。 我主要是在Storyboard中设置它(呃,就是这样)。 所以这是我的求助。 Viewtree: UIView -UIView -UIView ..-UIScrollview …-UIButton …-UIButton …-UIButton button应该水平滚动(从左到右,反之亦然)。 有人可以让我知道如何设置约束,以实现这个使用纯粹的Autolayout? – 我尝试了混合的方法,像这样: UIView – UIView – UIView ..-UIScrollview …-UIView (contentview) ….-UIButton ….-UIButton ….-UIButton …并按照Apple的技术说明为contentview和translatesAutoresizingMaskIntoConstraints设置设置固定的宽度和高度约束。 button和滚动视图使用约束设置。 这得到滚动视图滚动(耶),但唉,它滚动太多了! 据我所知,滚动宽度是从我设置内容视图??? ??? ??? 我也尝试了纯粹的自动布局方法,无论是contentview还是没有。 所有的意见都translatesAutoresizingMaskIntoConstraints=NO self.view translatesAutoresizingMaskIntoConstraints=NO ,除了self.view 。 button具有固定的宽度/高度约束,并固定在滚动视图的所有四个边上。 什么都不滚动。 所以我很困惑为什么我不能正确地工作。 任何帮助非常感谢,如果您需要任何其他信息,请问! 更新解决scheme的屏幕截图 – buttonZ约束: 编辑@杰米福雷斯特因此,解决scheme原来是最后一个button错误的尾随约束。 我所设定的价值是6441,而不是6441。 棘手的是,当在故事板中设置值时,Pin工具栏中有两个选项: 当前canvas值是负值(导致不滚动),下面的选项是正值(激活滚动)。 这意味着我不愚蠢,但至less我是半盲。 虽然,我的辩护,是不是有点令人不安,XCode不显示错误的“不正确的”设置? 再次编辑现在,这很有趣…将尾随值从-6441(不滚动)更改为6441启用滚动。 但是我的老朋友“内容太多”又回来了,导致内容的大小是原来的两倍! […]

如何自动调整UIScrollView的大小来适应内容

有没有办法使UIScrollView自动调整到其滚动内容的高度(或宽度)? 就像是: [scrollView setContentSize:(CGSizeMake(320, content.height))];

UIScrollView的中心内容较小时

我有一个UIImageView里面的UIScrollView我用于缩放和滚动。 如果滚动视图的图像/内容大于滚动视图,则一切正常。 但是,当图像变得小于滚动视图时,它会粘到滚动视图的左上angular。 我想保持中心,像照片应用程序。 任何关于保持UIScrollView的内容居中的想法或例子,当较小? 我正在使用iPhone 3.0。 下面的代码几乎可以工作。 如果在达到最小缩放级别后捏住图像,图像将返回到左上angular。 – (void)loadView { [super loadView]; // set up main scroll view imageScrollView = [[UIScrollView alloc] initWithFrame:[[self view] bounds]]; [imageScrollView setBackgroundColor:[UIColor blackColor]]; [imageScrollView setDelegate:self]; [imageScrollView setBouncesZoom:YES]; [[self view] addSubview:imageScrollView]; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"WeCanDoIt.png"]]; [imageView setTag:ZOOM_VIEW_TAG]; [imageScrollView setContentSize:[imageView frame].size]; [imageScrollView addSubview:imageView]; CGSize imageSize = imageView.image.size; […]

ios 8 – 水平滚动视图中的button拦截泛事件 – 滚动不起作用

我有一个button的水平滚动视图。 滚动视图不会滚动,除非我做一个非常快的滑动。 如果我将button设置为userInteractionEnabled = NO,那么滚动按预期工作,但当然,这些button根本不起作用。 这个应用程序在iOS 7和以前工作正常。 这似乎是一个iOS 8的“function”。 我注意到我可以捕获button的拖动事件,但我不知道如何将其redirect回滚动视图。 我想我需要用UIViewsreplace我的button,并且自己pipe理事件,但是如果有人有其他的想法或者解决scheme,我会很感激。

在iPhone上拖动UIScrollView时,OpenGL ES视图中的animation会冻结

我有一个animation透明OpenGL ES子视图(苹果模板EAGLView类的修改),它绘制一个旋转的球体。 就像苹果公司的例子一样,在可用的设备上使用CADisplayLink。 在同一个屏幕上,可以select一个包含UIButtons的UIScrollView。 当用户滚动UIScrollView,我的EAGLView的animation冻结。 此行为在iOS模拟器4.2和iPhone 2G上的iPhone OS 3.1.3上重现。 除了编码我自己的滚动视图之外,有什么办法可以防止EAGLView的暂停?

UIScrollView以编程方式滚动到底部

我怎样才能让UIScrollView滚动到我的代码底部? 或者以更通用的方式,对子视图的任何一点?

在滚动UIScrollView期间UILabel更新停止

我有一个scrollView与imageView里面。 scrollView是superView的子视图,而imageView是scrollView的子scrollView 。 我还有一个标签(在超级视图级别),每毫秒从NSTimer接收文本属性的更新值。 问题是:在滚动期间,标签停止显示更新。 当滚动结束时,标签上的更新重新开始。 当更新重新启动它们是正确的; 这意味着label.text值按预期更新,但在滚动时,更新显示会在某处被覆盖。 不pipe是否滚动,我都想在标签上显示更新。 以下是如何实现标签更新: – (void)startElapsedTimeTimer { [self setStartTime:CFAbsoluteTimeGetCurrent()]; NSTimer *elapsedTimeTimer = [NSTimer scheduledTimerWithTimeInterval:0.001 target:self selector:@selector(updateElapsedTimeLabel) repeats:YES]; } – (void)updateElapsedTimeLabel { CFTimeInterval currentTime = CFAbsoluteTimeGetCurrent(); float theTime = currentTime – startTime; elapsedTimeLabel.text = [NSString stringWithFormat:@"%1.2f sec.", theTime]; } 感谢您的帮助。