Когда быстрые функции вызываются в программах, где нет вызова функции?

Старый поток, который я знаю, но если вы ищете отзывчивое решение, это дополнение jQuery поможет:

$(window).on('resize',sticky);
$(document).bind("ready", function() {
   sticky();
});

function sticky() {
   var fh = $("footer").outerHeight();
   $("#push").css({'height': fh});
   $("#wrapper").css({'margin-bottom': -fh});
}

Полное руководство можно найти здесь: https: // pixeldesigns .co.uk / блог / отзывчивым-JQuery-липкий сноска /

-1
задан AtulParmar 19 March 2019 в 10:31
поделиться

3 ответа

Этот

mapView.delegate = self

с

class ViewController: UIViewController, MGLMapViewDelegate {

отвечает за их вызов, внутри фрейма MapKit класс MKMapView имеет свойство делегата, когда вы установить правый делегат внутренне, это происходит

delegate?.mapView(self,//)

и вы не должны возвращать ноль здесь

func mapView(_ mapView: MGLMapView, viewFor annotation: MGLAnnotation) -> MGLAnnotationView? {
0
ответ дан Sh_Khan 19 March 2019 в 10:31
поделиться

Это функции-делегаты, а не обычные функции, которые вы вызываете, они больше похожи на функции, которые вызываются на основе действия, и вы установили MapView.delegate на self, поэтому, когда функции вызывают в MapView относительно в случае, когда они их вызвали, они вернутся к реализованной стороне в вашем self, в этом случае UIViewController, я предлагаю прочитать больше о делегатах здесь , поэтому быстрый ответ, функции не вызываются в тот же класс.

0
ответ дан Mohmmad S 19 March 2019 в 10:31
поделиться

Это методы делегата, объявленные протоколом под названием MGLMapViewDelegate, который реализован в вашем классе

class ViewController: UIViewController, MGLMapViewDelegate { ... }

Установив delegate некоторого объекта в качестве вашего контроллера (= self), как вы это сделали с MGLMapView в viewDidLoad

mapView.delegate = self

вы говорите, что при вызове какого-либо метода для делегата mapView будет вызван метод, реализованный вами, например, mapView(_:viewFor:) -> MGLAnnotationView?. [1113 ]


В любом случае, ваш mapView должен быть переменной экземпляра, в противном случае вы потеряли ссылку на него

class ViewController: UIViewController, MGLMapViewDelegate {

    var mapView: MGLMapView!

    override func viewDidLoad() {
        super.viewDidLoad()
        mapView = MGLMapView(frame: view.bounds)
        ...
    }
}
0
ответ дан Robert Dresler 19 March 2019 в 10:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: