标签: uiscrollviewdelegate

在iOS 4.0中,为什么UIScrollView zoomToRect:animated:在动画时不触发scrollViewDidScroll或scrollViewDidZoom代理?

我需要密切监视滚动视图的比例,以便我可以根据滚动视图的动画缩放更新内容视图的元素(管理多个CALayers的子视图).

在iOS 3.1上,一切都按预期工作,我使用zoomToRect:animated:并且在动画发生时重复调用UIScrollViewDelegatescrollViewDidScroll:消息,让我根据实际缩放更新子视图元素.

iOS 4.0上的相同代码不会表现出相同的行为.当我调用zoomToRect:animated:时,委托(scrollViewDidScroll:scrollViewDidZoom)只被调用一次,这使得我的子元素被同步,直到动画结束.实际上,子元素会立即跳转然后被缩放动画捕捉到所有内容都在正确的位置.就像动画没有在子视图CALayers上获取修改一样.

我已尝试使用动画块手动动画,但情况相同,没有渐进式回调调用.我也尝试过KVO,但我不清楚如何使用UIScrollView管理的动画.

在iOS 4上是否有一种解决方法可以让我将比例值推送到我的子视图,因为UIScrollView比例是动画的?

uiscrollview uiscrollviewdelegate ios4 ios

28
推荐指数
2
解决办法
4602
查看次数

使用scrollViewWillEndDragging自定义UIScrollView分页

我正在尝试使用新的scrollViewWillEndDragging:withVelocity:targetContentOffset:iOS 5中的UIScrollView委托调用,但我似乎无法让它真正正确地回应我.我正在更改targetContentOffset-> x值,但它永远不会被使用.我知道代码正在运行,因为它会在该函数中命中断点.我甚至尝试将偏移值设置为硬编码数字,因此我知道它最终会在哪里但它永远不会起作用.

有没有人能够正确使用它并使其工作?是否有任何其他委托调用必须实现才能使其工作?

这是我的代码,万一有人看到它有问题:

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
    // goodOffsetX returns the contentOffset i want the scrollView to stop at
    CGFloat goodOffsetX = [self _horizontalContentOffsetForTargetHorizontalContentOffset:(*targetContentOffset).x velocity:velocity.x];

    NSLog( @" " );
    NSLog( @"scrollViewWillEndDragging" );
    NSLog( @"   velocity: %f", velocity.x );
    NSLog( @"   currentX: %f", scrollView.contentOffset.x );
    NSLog( @"   uikit targetX: %f", (*targetContentOffset).x );
    NSLog( @"   pagedX: %f", goodOffsetX );

    targetContentOffset->x = goodOffsetX; 
}
Run Code Online (Sandbox Code Playgroud)

uiscrollview uikit uiscrollviewdelegate ios

24
推荐指数
3
解决办法
3万
查看次数

希望UITableView"对齐单元格"

我正在显示相当大的图像UITableView.当用户滚动时,我希望在桌面视图中始终将中心最多的照片捕捉到中间.也就是说,当桌子处于静止状态时,它将始终UITableViewCell与中心对齐.

怎么做到这一点?

objective-c uitableview uiscrollviewdelegate ios

18
推荐指数
4
解决办法
8619
查看次数

如何测试滚动视图是否弹跳?

如何测试滚动视图是否弹跳?反弹结束时是否有通知或某事?

iphone uiscrollview uiscrollviewdelegate

13
推荐指数
4
解决办法
1万
查看次数

scrollViewWillEndDragging中的速度单位是什么:withVelocity:targetContentOffset:?

文件指出它的points(每秒,我假设)?但是,我得到的值在(.5, 3.5)范围内.滚动视图然后在停止之前行进几百个点.实际的初始速度应该是数量级的不同.

uiscrollview uiscrollviewdelegate ios ios5

13
推荐指数
1
解决办法
3219
查看次数

当我快速向同一方向滑动两次时,为什么UIScrollView会剧烈滚动?

在UIScrollview中水平滚动时,如果我在同一方向快速滑动两次,滚动视图会猛烈跳跃.反正有没有阻止这种情况发生?为了详细解释,这里是一个来自scrollview的事件日志,在大多数委托方法中我只打印x坐标.

scrollViewWillBeginDragging:
    14:55:12.034 Will begin dragging!
    14:55:12.037 - Position -0.000000
scrollViewWillBeginDeceleration:
    14:55:12.129 Deceleration rate 0.998000
    14:55:12.152 + Position 314.000000
scrollViewWillBeginDragging:
    14:55:12.500 Will begin dragging!
    14:55:12.522 - Position 1211.000000
scrollViewWillBeginDeceleration:
    14:55:12.530 Deceleration rate 0.998000
    14:55:12.533 + Position 1389.000000
scrollViewDidScroll: (printing values < 0 && > 6000 (bounds.size.width)
    14:55:12.595 !!! Position 7819.000000
    14:55:12.628 !!! Position 9643.000000
    14:55:12.658 !!! Position 10213.000000
    14:55:12.688 !!! Position 10121.000000
    14:55:12.716 !!! Position 9930.000000
    ... contentoffset.x drops with around 400 each scrollviewdidscroll call ...
    14:55:13.049 !!! Position 6508.000000 …
Run Code Online (Sandbox Code Playgroud)

objective-c uiscrollview uiscrollviewdelegate ios

12
推荐指数
1
解决办法
2171
查看次数

Objective C switch语句和命名整数常量

我有一个控制器,它作为两个滚动视图的委托,放置在由前面提到的视图控制器管理的视图中.

为了区分两个滚动视图,我试图使用switch语句(而不是简单的指针与if语句比较).我已将这两个滚动视图标记为0和1

NSUInteger const kFirstScrollView = 0;
NSUInteger const kSecondScrollView = 1;
Run Code Online (Sandbox Code Playgroud)

当我尝试在switch语句中使用这些常量时,编译器说case语句不是常量.

switch (scrollView.tag) {
    case kFirstScrollView: {
      // do stuff
    }
    case kSecondScrollView: {
      // do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

cocoa-touch switch-statement uiscrollview uiscrollviewdelegate

10
推荐指数
2
解决办法
5585
查看次数

scrollViewDidEndDecelerating被调用以进行简单的触摸

我正在实现UIScrollViewDelegate并用它做很多事情.但是,我刚刚发现了一个烦人的问题.

我希望scrollViewDidEndDecelerating:将后总是叫scrollViewWillBeginDecelerating: .但是,如果我只是触摸我的ScrollView(实际上我正在触摸scrollView中的按钮),则会调用scrollViewDidEndDecelerating:并且不会调用scrollViewWillBeginDecelerating:.

那么我怎么能避免使用scrollViewDidEndDecelerating:当我只是按下UIScrollView中的按钮时调用?

谢谢!

uiscrollview uiscrollviewdelegate ios

10
推荐指数
1
解决办法
1664
查看次数

10
推荐指数
3
解决办法
5786
查看次数

在ios中的寻呼机滑动TabStrip

我想在我的项目中使用Pager Sliding TabStrip.寻呼机Sliding Tapstrip适用于Android.我们可以这样定义吗?我已经采用了一个滚动视图,在其上添加了用于表格的子视图并获取了一个uivew,添加了按钮作为子视图,并添加了uilabel作为tabstrip的子视图.使用滚动视图意味着拖动滚动视图,必须移动tabrip.我一直坚持这个概念,我不知道解决这个问题.我如何得到这个概念?请任何人给我任何想法.

uiscrollview uiscrollviewdelegate ios

9
推荐指数
1
解决办法
3266
查看次数