- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 UIScrollView ,它的宽度与其父 View 相同。它有一个非常宽的 contentSize 并水平滚动。
我尝试使用委托(delegate)方法scrollViewWillEndDragging:withVelocity:targetContentOffset: 将 targetContentOffset->x 设置为负值(即,将内容区域的左边缘移动到更靠近屏幕中心的位置)。
设置该值似乎有效(NSLog 显示前后的变化),但 ScrollView 似乎忽略了修改后的 targetContentOffset 并仅在 0 处结束滚动。
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
NSLog(@"target: %@", NSStringFromCGPoint(*targetContentOffset));
if (targetContentOffset->x <= 0.0)
{
targetContentOffset->x = -300;
}
NSLog(@"target: %@", NSStringFromCGPoint(*targetContentOffset));
}
有人知道是否可以使用此方法来完成此操作,还是我应该以其他方式完成此操作?
最佳答案
我已经通过使用 contentInset
属性成功解决了类似的问题。
这是 Swift 中的示例:
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
// Determine threshold for dragging to freeze content at the certain position
if scrollView.contentOffset.y < -50 {
// Save current drag offset to make smooth animation lately
var offsetY = scrollView.contentOffset.y
// Set top inset for the content to freeze at
scrollView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)
// Set total content offset to preserved value after dragging
scrollView.setContentOffset(CGPoint(x: 0, y: offsetY), animated: false)
// Make any async function you needed to
yourAsyncMethod(complete: {() -> Void in
// Set final top inset to zero
self.tripsTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)
// Set total content offset to initial position
self.tripsTableView.setContentOffset(CGPoint(x: 0, y: -50), animated: false)
// Animate content offset to zero
self.tripsTableView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
})
}
}
您可以改进它以用于水平滚动
关于ios5 - 在uiscrollviewdelegate中,是否可以将targetContentOffset设置为负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11794351/
您好,我正在尝试在用户滚动应用程序时触发一个功能。 这是我的代码 我定义了一个实现 UIScrollViewDelegate 的类 MyViewController @interface Circle
我有一个带有 UIScrollView 的 View ,带有一些文本(通过 JSON 加载)。我需要检测用户何时到达滚动的末尾(我在这里看到了其他关于它的问题)但问题是,我已经完成了 .h 实现 UI
当我实例化 ScrollView 并将其添加到 ViewController 类中的 self.view 并将 ScrollView 的委托(delegate)设置为 self 时,委托(delega
我使用以下代码来初始化新的 UIScrollView: UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMak
这可能是一些sort of duplicate of this question .但我试图应用它的答案无济于事。 我有一个 UIScrollView 和 pagingEnabled。我想使用 UIS
我想在 scrollViewDidScroll 中添加一些内容.你有两种可能: 1号 public override void Scrolled (UIScrollView scrollView){
我遇到了一个奇怪的问题。我有一个自定义组件来为我处理 UICollectionView 的布局。该代码是用 Swift 编写的。 class MyCustomCollectionViewHandler
我有一个 UIView,它有一个 UIScrollView subview ,并且是一个 UIScrollViewDelegate。自从我实现了 viewForZoomingInScrollView
我已经实现了这些方法,将 View Controller 指定为 UIScrollViewDelegate,设置内容大小,并设置 UIScrollView 的委托(delegate)属性。但是,出于某
我正在对 UIViewController 进行子类化,并在其 View 中实例化一个 UIScrollView,该 View 的高度为 480,宽度为 640(常规宽度的 2 倍)。分页已启用,因此
我在下面的行中面临警告 此警告在更改以下行后出现 @interface BDSAppDelegate : UIResponder 到 @interface BDSAppDelegate : UIRe
我可以使用 UIScrollViewDelegate 的协议(protocol)扩展来为所有符合此协议(protocol)的 View 提供 scrollViewDidScroll 的默认实现吗? 因
当我拖动它时,我的 View 似乎在滚动(边栏出现并四处移动),但我的委托(delegate)函数没有触发。 问题:为什么协议(protocol)函数中的 println 永远不会被调用?作为背景,我
我有一个 UICollectionView,它是 UIScrollView 的 subview 。当 UICollectionView 内部有滚动时,是否可以绕过 UIScrollViewDelega
我有一个 UIScrollView 和一个 UIView header ,它贴在 ScrollView 的顶部,并在用户向下滚动时从全尺寸缩小到小尺寸。当然,这些都是通过 ScrollView 委托(
我有一个 UICollectionView 子类。 我想为 UIScrollViewDelegate 中的 scrollViewDidScroll 添加默认实现 有没有办法从 UICollection
在我的 iPhone 应用程序中,我将 uiwebview 的委托(delegate)设置为文件所有者,但它没有调用 uiscrollviewdelegate 方法 我的代码是 - (void)web
我正在从事一个项目,其中我必须大量使用 UITableViews。所以,我想检测 TableView (UIScrollView) 是否正在滚动。 首先,我使用 UIViewController 中的
在将 UIScrollView 实现到 UITableViewCell 中时出现错误。 class MyItemTableViewCell: UITableViewCell, UIScrollView
我正在使用符合这些协议(protocol)的自定义 UITableView: UITableView 数据源 UIScrollViewDelegate 我的应用程序中的许多地方都使用了这个表格 Vie
我是一名优秀的程序员,十分优秀!