\ используется в Strings для вызова специальных символов. Если вам нужна обратная косая черта в вашей строке (например, для \ in \ s), вам нужно избежать ее с помощью обратного слэша. Итак, \ становится \\.
EDIT: Даже нужно было сделать это здесь, потому что \\ в моем ответе обратился к \.
Переменная lastScale
всегда будет 1
, потому что этот метод удаляется из памяти после использования, пока он не будет вызван снова. Поэтому lastScale
всегда будет сбрасываться на 1. Кроме того, у вас есть recognizer.state == began
и настройка lastScale = 1
, что означает, что каждый раз, когда вызывается новое касание, lastscale = 1
.
То, что вы должны сделать, - это создать глобальную переменную, а не локальную переменную, и скорректировать эту шкалу. Это позволит ему не возвращаться к 1 каждый раз. Кроме того, никогда не сбрасывайте lastScale
, если вы не нажмете какую-либо функцию сброса. Подумайте об этом - почему вы хотите сбросить свой lastScale после того, как он установлен?