2015-05-09 149 views
3

我一直在嘗試動畫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秒時,文本跳轉到最終值。 searchFieldUITextField.placeHolderInset是UIEdgeInset用於確定UITextField的佔位符文本的插入符號。

編輯:另一種方式來實現期望的效果是通過改變UITextField.textAlignment.Center.Left但不會動畫任一。

+0

沒有ü嘗試增加更多價值的動畫時間?...假設0.4 – Vizllx

+1

嘗試調用'self.searchField.layoutIfNeeded()'動畫塊內。這有幫助嗎? –

+0

@robmayoff,你,我的好先生,很棒。那就是訣竅。想發佈是作爲答案,所以我可以接受它? –

回答

4

你需要調用layoutIfNeeded()上來看,動畫塊內。

相關問題