【发布时间】:2016-12-07 14:47:26
【问题描述】:
我正在尝试为我的第一个应用编写简短的介绍。
这是我的代码:
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
var MainscrollView = UIScrollView()
override func viewDidLoad() {
super.viewDidLoad()
MainscrollView.delegate = self
//Frames
var singleFrame : CGRect = self.view.frame;
var scrollFrame : CGRect = singleFrame
scrollFrame.size.width *= 3.0 //num. frames
//Views
//ScrollView
MainscrollView = UIScrollView(frame: singleFrame)
view.addSubview(MainscrollView)
MainscrollView.isPagingEnabled = true
MainscrollView.contentSize = scrollFrame.size
//1 frame
let firstView : UIView = UIView(frame: singleFrame)
firstView.backgroundColor = UIColor.red
MainscrollView.addSubview(firstView)
//2 frame
singleFrame.origin.x = firstView.frame.size.width
let secondView : UIView = UIView(frame: singleFrame)
secondView.backgroundColor = UIColor.yellow
MainscrollView.addSubview(secondView)
//3 frame
singleFrame.origin.x = firstView.frame.size.width * 2
let thirdView : UIView = UIView(frame: singleFrame)
thirdView.backgroundColor = UIColor.green
MainscrollView.addSubview(thirdView)
}
func scrollViewDidEndDecelerating(_ MainscrollView : UIScrollView) {
print("in here")
}
}
不幸的是,scrollViewDidEndDecelerating 函数从未被触发。 我有几个需求:
如何正确使用 scrollViewDidEndDecelerating? (我需要它来触发 pageController 元素的“页面已更改”事件)。
你能不能让我在正确的方向上实现一些额外的图形效果在滚动视图上方作为对象进入和退出视图的速度与滚动视图不同(如 Google Calendar Intro 或 Evernote Intro 等.)?
【问题讨论】:
-
一些与实际问题无关的文体观察:
Mainscrollview应以小写字母开头,并应为驼峰式(即mainScrollView),scrollViewDidEndDecelerating的参数名称不应为MainscrollView(例如,只需scrollView即可)。 -
另外,将滚动视图作为
let常量会使问题在编译时变得明显。 -
谢谢大家的建议,现在可以了!
标签: ios swift uiscrollviewdelegate