Swift 我的scrollViewDidScroll函数未接收呼叫
我试图检查用户是否在我的应用程序上上下滚动,但它没有调用我的Swift 我的scrollViewDidScroll函数未接收呼叫,swift,uiscrollview,Swift,Uiscrollview,我试图检查用户是否在我的应用程序上上下滚动,但它没有调用我的scrollViewDidScroll方法 当我在应用程序上上下滚动时,你知道为什么它没有打印收到的滚动条吗 import UIKit class CreateAccount: UIViewController, UITextFieldDelegate, UIScrollViewDelegate { @IBOutlet weak var scrollViewer: UIScrollView! @IBOutlet we
scrollViewDidScroll
方法
当我在应用程序上上下滚动时,你知道为什么它没有打印收到的滚动条吗
import UIKit
class CreateAccount: UIViewController, UITextFieldDelegate, UIScrollViewDelegate {
@IBOutlet weak var scrollViewer: UIScrollView!
@IBOutlet weak var usernameTextField: UITextField!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var reenterPasswordTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func scrollViewDidScroll(scrollView: UIScrollView) {
print("received scroll")
}
}
添加scrollview委托。每当您实现委托方法时,您需要告诉它要使用哪个控制器,通常是
self
。有几次我都被它抓住了
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
scrollViewer.delegate = self
}
您可以根据建议设置
.delegate=self
,或:
func scrollViewDidScroll(scrollView: UIScrollView) {
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
CTRL从故事板中的scrollView拖动到文件所有者上(它位于视图层次结构列表中,实际上它位于控制器名称旁边的黄色圆圈图标旁:[O]创建帐户,然后选择
- 委派
UIScrollViewDelegate
方法中使用它
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView == scrollView1 {
print("received scrollview 1")
}
else if scrollView == scrollView2 {
print("received scrollview 2")
}
}
即使您的scrollview委托方法未调用,也会正确指定委托,然后请检查您为scrollview添加的委托方法,由于使用旧swift版本scrollview委托和swift 4.0,此可能会发出警告 如果是这种情况,请使用以下内容更正: 旧方法:
func scrollViewDidScroll(scrollView: UIScrollView) {
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
新方法:
func scrollViewDidScroll(scrollView: UIScrollView) {
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
你没有设置scrollview的delegateYep,确实是这样!谢谢!有什么地方我可以阅读更多关于这方面的信息吗?就像在罕见的情况下,我在屏幕上有两个滚动部分,我如何区分这两个部分?老实说,我不知道这个问题的答案,我会尝试类似于
scrollView1.delegate=self
和的内容>scrollView2 delegate=self
,我会给每个人一个不同的标记,并在scrollViewDidScroll(scrollView:UIScrollView)中检查通过调用scrollView.tag
。它们应该调用相同的函数。保留对UIScrollView
实例的两个属性引用。调用委托函数时,UIScrollView
实例被传入。只需做一个简单的=
比较,看看它是哪个实例。谢谢Nirav!太棒了e、 我不知道你能做到。