Декларация действительна только в области файла Ошибка Проект приложения SWIFT - PullRequest
0 голосов
/ 11 июля 2020

Я новичок в программировании приложений и пытаюсь разобраться во всем, но не могу быстро найти ответ на свой код. Думаю, что-то не то форматировал, но не знаю что. Вот изображение, которое, надеюсь, поможет вам понять: На этом изображении показано сообщение об ошибке и весь код

Вот код. Ошибка с сообщением «объявление действительно только в области файла» возникает в строке с кодом:

extension ViewController: UIScrollViewDelegate {                     



    import UIKit
    class ViewController: UIViewController, UIScrollViewDelegate {
        @IBOutlet weak var label: UILabel!
        override func viewDidLoad() {
            super.viewDidLoad()
            scrollView.maximumZoomScale = 4
            scrollView.minimumZoomScale = 1
            scrollView.delegate = self
        }
        @IBAction func randomWord(_ sender: Any) {
            let array = ["Dam", "Military Base", "Quarry", "Airport", "Tv Station", "Storage Town", "Superstore", "Stadium", "Lumber", "Boneyard", "Train Station", "Hospital", "Downtown", "Farmland", "Promenade East", "Promenade West", "Hills", "Park", "Port", "Prison"]
            label.text = array.randomElement()
        }
        @IBOutlet weak var scrollView: UIScrollView!
        @IBOutlet weak var mapImage: UIImageView!
        extension ViewController: UIScrollViewDelegate {                            
            func viewForZooming(in scrollView: UIScrollView) -> UIView? {
                return mapImage
            }
        }
    }

1 Ответ

0 голосов
/ 11 июля 2020

Вам просто нужно сделать ваш метод методом экземпляра вашего контроллера представления:

import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
    @IBOutlet weak var label: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        scrollView.maximumZoomScale = 4
        scrollView.minimumZoomScale = 1
        scrollView.delegate = self
    }
    @IBAction func randomWord(_ sender: Any) {
        let array = ["Dam", "Military Base", "Quarry", "Airport", "Tv Station", "Storage Town", "Superstore", "Stadium", "Lumber", "Boneyard", "Train Station", "Hospital", "Downtown", "Farmland", "Promenade East", "Promenade West", "Hills", "Park", "Port", "Prison"]
        label.text = array.randomElement()
    }
    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var mapImage: UIImageView!
    // make viewForZooming a an instance method of ViewController
    func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        return mapImage
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...