Итак, проблема в том, что чем быстрее вы прокручиваете, тем больше становится «промежуток» между событиями scrollViewDidScroll.
Вам, вероятно, следует подумать о том, чтобы передвигаться по метке с помощью UIView.animate ... это создаст более согласованный опыт, поскольку анимация всегда имеет одинаковую скорость.
Таким образом, вы можете применить анимацию, используя CGAffineTransform (translationX:, y:)
в зависимости от того, превышает ли ваш contentOffset.y заданный порог, всякий раз, когда этот ярлык должен появляться или исчезать.