有没有办法知道一个UIScrollView是否到达顶部或底部内部
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
Run Code Online (Sandbox Code Playgroud)
?
谢谢.
当用户在启用分页的UIScrollView中更改页面时,有没有办法检测或获取通知?
我UIScrollView在页面上有一些.您可以单独滚动它们或将它们锁定在一起并将它们滚动为一个.锁定时会出现问题.
我使用UIScrollViewDelegate并scrollViewDidScroll:跟踪运动.我查询contentOffset的UIScrollView哪些改变,然后反映他们的设置更改为其他滚动视图contentOffset属性相匹配.
很棒....除了我注意到很多额外的电话.以编程方式更改contentOffset我的滚动视图会触发scrollViewDidScroll:调用委托方法.我尝试过使用setContentOffset:animated:,但我仍然在委托上获得触发器.
如何以编程方式修改contentOffsets以不触发scrollViewDidScroll:?
实现说明....每个UIScrollView都是自定义的一部分,UIView它使用委托模式回调到UIViewController处理协调各种contentOffset值的呈现子类.
我有一个带有自定义UICollectionViewFlowLayout的UICollectionView.它水平滚动,一次只显示一个项目(全高).我有pagingEnabled = YES所以它坚持页面.
UICollectionView显示特定日期内的照片.我最初有按钮来改变当天+/- 1天,但我认为如果用户可以通过第一张或最后一张图像(超过预定阈值)拉动收集视图以改变那一天,那将是整洁的.我使用UIScrollView委托方法实现了它,如果集合视图中有2个或更多项,它的效果很好......
这很难描述,但如果只有一个项目,则不允许我将项目拉过它的界限.IE没有反弹.
我想有这种行为,但我需要先解决这个问题.我想如果我删除了pagingEnabled = YES并使用了targetContentOffsetForProposedContentOffset:proposedContentOffset:withScrollingVelocity,那我可以让它工作但我真的很喜欢分页启用的快速行为.(它们是相互排斥的).
有什么想法吗?
iphone uiscrollviewdelegate ios uicollectionview uicollectionviewlayout
我有一个UITableView实例变量.我希望能够注册我的视图控制器UIScrollViewDelegate作为我的UITableViewController.我已经尝试过了
tableView.delegate = self;
Run Code Online (Sandbox Code Playgroud)
但滚动时,我的方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
Run Code Online (Sandbox Code Playgroud)
不要被打电话.有什么建议?
iphone cocoa-touch delegates uitableview uiscrollviewdelegate
我知道Apple文档具有以下委托方法:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView; // called when scroll view grinds to a halt
Run Code Online (Sandbox Code Playgroud)
但是,这并不一定意味着你处于最底层.因为如果你使用你的手指,滚动一下,然后它减速,但你实际上并不在滚动视图的底部,然后它仍然被调用.我基本上想要一个箭头来显示我的滚动视图中有更多数据,然后当你在底部时就会消失(就像它反弹时一样).谢谢.
UIScrollView有一个委托属性,符合UIScrollViewDelegate
protocol UIScrollViewDelegate : NSObjectProtocol {
//...
}
class UIScrollView : UIView, NSCoding {
unowned(unsafe) var delegate: UIScrollViewDelegate?
//...
}
Run Code Online (Sandbox Code Playgroud)
UICollectionView使用不同的类型UICollectionViewDelegate覆盖此属性
protocol UICollectionViewDelegate : UIScrollViewDelegate, NSObjectProtocol {
//...
}
class UICollectionView : UIScrollView {
unowned(unsafe) var delegate: UICollectionViewDelegate?
//...
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用我的协议覆盖UIScrollViews委托时,如下所示:
protocol MyScrollViewDelegate : UIScrollViewDelegate, NSObjectProtocol {
//...
}
class MyScrollView: UIScrollView {
unowned(unsafe) var delegate: MyScrollViewDelegate?
}
Run Code Online (Sandbox Code Playgroud)
编译器给了我两个警告:
我如何子类化UIScrollView并覆盖委托属性的类型(即使用自定义委托协议)?
我已经UIScrollViewDelegate在我的.h文件中实现了协议,我已经实现了
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
Run Code Online (Sandbox Code Playgroud)
我的.m类中的方法.当在我的表视图中完成滚动时,会调用其他的scrollview委托方法,但是当滚动结束时,-scrollViewDidEndScrollingAnimation:不会被调用.我有点陷入困境.
感谢致敬
我想实现UICollectionView水平和无限滚动?
uiscrollview uiscrollviewdelegate ios uicollectionview swift
我需要密切监视滚动视图的比例,以便我可以根据滚动视图的动画缩放更新内容视图的元素(管理多个CALayers的子视图).
在iOS 3.1上,一切都按预期工作,我使用zoomToRect:animated:并且在动画发生时重复调用UIScrollViewDelegate的scrollViewDidScroll:消息,让我根据实际缩放更新子视图元素.
iOS 4.0上的相同代码不会表现出相同的行为.当我调用zoomToRect:animated:时,委托(scrollViewDidScroll:和scrollViewDidZoom)只被调用一次,这使得我的子元素被同步,直到动画结束.实际上,子元素会立即跳转然后被缩放动画捕捉到所有内容都在正确的位置.就像动画没有在子视图CALayers上获取修改一样.
我已尝试使用动画块手动动画,但情况相同,没有渐进式回调调用.我也尝试过KVO,但我不清楚如何使用UIScrollView管理的动画.
在iOS 4上是否有一种解决方法可以让我将比例值推送到我的子视图,因为UIScrollView比例是动画的?
ios ×6
iphone ×6
uiscrollview ×6
objective-c ×2
swift ×2
cocoa-touch ×1
delegates ×1
ios4 ×1
ipad ×1
uitableview ×1