当前位置: 首页 > 知识库问答 >
问题:

无法从UIScrollViewDelegate重写scrollViewDidScroll

艾浩广
2023-03-14

我是iOS和swift的新手,我试图从UIScrollViewDelegate重写scrollViewDidScroll(),但它显示我“方法不重写它的超类中的任何方法”,我正在学习本教程https://www.youtube.com/watch?v=xq3cvd8-zne

这是我做的代码。

class ViewController: UIViewController, UIScrollViewDelegate {

    
    
    @IBOutlet weak var scrolliew: UIScrollView!
    @IBOutlet weak var pageControl: UIPageControl!
    
    var contentWidth:CGFloat=0.0
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        scrolliew.delegate=self
        
        for image in 0...3 {
            let imageToDisplay = UIImage(named:"\(image).png")
            let imageView = UIImageView(image:imageToDisplay)
            
            scrolliew.addSubview(imageView)
            
            let xCordinates = view.frame.minX + view.frame.width * CGFloat(image)
            
            contentWidth += view.frame.width
            
            imageView.frame=CGRect(x:xCordinates,y:view.frame.height/2,width:100,height:100)
            
        }
        
        scrolliew.contentSize=CGSize(width: contentWidth, height: view.frame.height)
    }
     

    override func scrollViewDidScroll(_ scrollView: UIScrollView) {
        
    }

}

共有1个答案

谢修真
2023-03-14

实际上不必重写该方法。ScrollViewDidScroll(...)UIScrollViewDelegate协议的一部分,该协议的实现是可选的。

只需删除override关键字即可修复错误。

 类似资料:
  • 问题内容: 我将测试用例中的方法重写为模拟Socket中的pas。完成此操作后,对象将不再可序列化。 这是不起作用的示例。 Foo.java FooTest.java 使用JUnit运行FooTest时的堆栈跟踪: 这是什么问题?我不得不承认,我并没有深入研究Java的Serializable接口,或多或少只是遵循了Eclipse的快速修复程序。 更具体地讲我的实现: 我有一个应该通过Object

  • Main.java:12:错误:TextMessage不是抽象的,并且不会覆盖Message类中的抽象方法setContent(T)TextMessage扩展Message{^其中T是类型变量:T扩展方法setContent(T)中声明的Object 1错误

  • subA类是A类的子类。我试图重写一个方法,但不知怎的,它不允许我重写它。为什么会这样?是因为参数中的参数吗? 读取错误消息: 名称冲突:subA中的add(E#1)和A中的add(E#2)具有相同的擦除,但两者都不重写另一个,其中E#1、E#2是类型变量: E#1扩展了subA类中声明的对象 E#2扩展了A类中声明的对象 超类A: 子类subA:

  • 问题内容: 这是我的代码块。 这段代码无法编译,因为我在Line1中添加了“ throws”。 编译器抱怨重写的方法不能引发异常。 为什么这样 ?。 为什么覆盖的方法不能引发异常? 因为我可以通过在子类的实现中添加n行代码来覆盖基类中的方法。 这些添加的代码会引发异常,所以为什么我不能在重写的方法中使用“引发”? 问题答案: 重写的方法可以引发Exception,只要被重写的方法也抛出相同的Exc

  • 我的类KTree正在扩展抽象类GraphClass,但无法重写GraphClass中定义的一个方法。 原始方法添加(E E,V V,V v1)在界面无向图中定义 在类中,addEdge(E E,V V,V v1)抛出错误 “KTree”中的“addEdge(E,V,V)”与“GraphClass”中的“addEdge(E,V,V)”冲突;两种方法具有相同的擦除,但都不重写另一种方法 KTree中的

  • 如何/可以重写来自非继承类的方法?其次,有没有比“非继承类”更好的术语? 我有一个“扩展”JFrame的类,需要从JPanel重写paintComponent。怎么做?或者它可以扩展JPanel,并需要访问方法,如setTitle()、setResizable()和setDefaultCloseOperation();