Я пытался анимировать изменение в UIEdgeInsets
. Я уже пробовал использовать UIView.animateWithDuration
, и вставки просто переходят к конечным значениям. Кто-нибудь знает, если это свойство, которое нельзя анимировать? Или еще лучше, кто-нибудь знает о способе оживить вставки?Можно ли оживить UIEdgeInsets?
В качестве примера:
// Starting inset values
self.searchField.placeHolderInset = UIEdgeInsets(top: 0, left: 110, bottom: 0, right: 10)
// Animation block
UIView.animateWithDuration(0.1, animations: {
self.searchField.placeHolderInset = UIEdgeInsets(top: 0, left: 18, bottom: 0, right: 10)
})
Вместо того чтобы перемещать 92 точек влево более 0,1 секунд, текст переходит к конечному значению. searchField
- это UITextField
, а .placeHolderInset
- это идентификатор UIEdgeInset, используемый для определения вставки для текста заполнителя UITextField
.
EDIT: Другой способ достичь желаемого эффекта путем изменения UITextField
«s .textAlignment
из .Center
в .Left
, но это не будет анимировать либо.
0 попытался добавить больше значения в продолжительность анимации? ... предположим 0.4 – Vizllx
Попробуйте вызвать 'self.searchField.layoutIfNeeded()' внутри блока анимации. Это помогает? –
@robmayoff, ты, мой хороший сэр, блестящий. Это сделал трюк. Хотите отправить сообщение, так что я могу принять его? –