SkyFloatingLabelTextField автоматически перемещает метку вверх по фокусу

Нет, похоже, что вы делаете это неправильно. Соединения MongoDB являются «клиентской стороной». Очень похоже на то, что вы сказали:

На данный момент я получаю комментарии, соответствующие моим критериям, затем выясняя все uid в этом наборе результатов, получая пользовательские объекты и объединяя их с комментариями. Похоже, я делаю это неправильно.

1) Select from the collection you're interested in.
2) From that collection pull out ID's you need
3) Select from other collections
4) Decorate your original results.

Это не «реальное» соединение, но на самом деле оно намного полезнее, чем соединение SQL, потому что вам не нужно иметь дело с дубликатом строки для «многих» сторонних объединений, вместо этого вы украшаете первоначально выбранный набор.

На этой странице много глупостей и FUD. Оказывается, 5 лет спустя MongoDB все еще есть.

1
задан Cam 17 January 2019 в 14:33
поделиться

2 ответа

Вы можете достичь этой функциональности, создав подклассы SkyFloatingLabelTextField и управляя видимостью заголовка.

final class MovingTitleOnFocusTextField: SkyFloatingLabelTextField {

    override func becomeFirstResponder() -> Bool {
        setTitleVisible(true)
        return super.becomeFirstResponder()
    }

    override func resignFirstResponder() -> Bool {
        setTitleVisible(hasText || hasErrorMessage)
        return super.resignFirstResponder()
    }
}

Если вы используете SkyFloatingLabelTextFieldWithIcon, вы должны также подкласс этого, но та же идея.

0
ответ дан Daniel 17 January 2019 в 14:33
поделиться

ОБНОВЛЕНИЕ 2

Я раздвоил проект и внес необходимые изменения. Вы можете проверить это здесь . Я также сделал Pull Request для первоначального автора, так что эта функциональность может быть добавлена ​​в исходный проект.

Для использования поведения просто установите myFloatingTextField.isAnimationOnTouch 0 true. Это приведет к тому, что анимация произойдет прямо при нажатии на текстовое поле.

Удачного кодирования!

ОБНОВЛЕНИЕ 1

Так что вопрос был больше связан с поведением SkyFloatingLabelTextField. Извините за недопонимание!

После самого первого набора кода на странице github, ярлык будет перемещаться вверх, как только вы наберете. Значит, вы хотите прямо от прикосновения? Затем вам нужно раскошелиться на проект и принять код из

@objc open func editingChanged() {
    updateControl(true)
    updateTitleLabel(true)
}

, чтобы достичь его на ощупь. Это можно сделать с помощью метода делегата func textFieldDidBeginEditing(_ textField: UITextField)

Как только вы это сделаете, я думаю, вы сможете поднять метку вверх, как только пользователь коснется textField.


Оригинальный ответ

Это не зависит от используемых вами меток, рабочий процесс одинаков для всех видов: появляется клавиатура и текстовое поле должно двигаться чтобы клавиатура не закрывала текстовое поле.

Чтобы добиться этого, пожалуйста, посмотрите на этот SO-ответ: Перемещение текстового поля, когда клавиатура появляется быстро .

Я не хочу копировать весь код, просто укажу вам правильное направление.

Удачного кодирования!

0
ответ дан Tomte 17 January 2019 в 14:33
поделиться
Другие вопросы по тегам:

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