xcode 6 beta 4 ScrollViewDelegate 中 scrollViewWillEndDragging 无法修改 targetContentOffset 的值

2014-08-03 06:28:54 +08:00
 csmx123

如题,本人正在写一个iOS app,并且希望在左右滑动一个UIScrollView以后根据滑动的offset大小定义targetContentOffset。语言是swift,编译环境是xcode 6 beta 4。

部分代码:

class someViewController: UIViewController, UIScrollViewDelegate {

func someMethod() {
      ...
      var myScrollView = UIScrollView()
      ...
      myView.addSubview( myScrollView )
      myScrollView.delegate = self
}

func scrollViewWillEndDragging(scrollView: UIScrollView!, withVelocity velocity: CGPoint, targetContentOffset: UnsafePointer<CGPoint>) {

     if scrollView.contentOffset.x > someValue {
           println("something")
           targetContentOffset.memory.x = -20
           println("\(targetContentOffset.memory.x)")
     }
}

}

得到的结果是 something 被输出了,targetContentOffset.memory.x的值也被修改了,但是view没有停留到我想让他停留的位置。请高手来看一看怎么回事。谢谢。

4590 次点击
所在节点    iDev
3 条回复
sobigfish
2014-08-03 11:14:04 +08:00
contentSize 不够大?瞎猜的-。-
csmx123
2014-08-04 09:55:04 +08:00
更新:

func scrollViewWillEndDragging(scrollView: UIScrollView!, withVelocity velocity: CGPoint, targetContentOffset: UnsafePointer<CGPoint>) {

if scrollView.contentOffset.x > someValue {

targetContentOffset.memory.x = -20
scrollView.setContentOffset( CGPointMake( -20.0 , 0.0 ), animated: false )
}
}

}

实现了自动滑动,但是当animated变成true的时候自动滑动失败了
csmx123
2014-08-04 11:32:49 +08:00
以解决,删除了storyboard,用纯代码实现就没问题了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/125842

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX