簡體   English   中英

關於UIScrollView子視圖上的動畫

[英]about the animation on the subview of UIScrollView

當我在滾動視圖的子視圖上添加一些動畫,例如擴展或收縮文本字段時,它根本無法工作。 但是,當子視圖添加到簡單的UIView時,效果很好。

這是怎么發生的?

UIScrollView中為UITextFieldframe設置動畫應該沒有問題。

在iOS 6中,“我的動畫沒有動畫”的最常見來源是后來在使用自動布局時嘗試通過調整frame來使控件動畫化(因為frame的調整會因大多數人重新應用的約束而受挫。無害的行動)。 您可以通過在Interface Builder中選擇最右邊面板的File Inspector(第一個選項卡),然后查看是否選中了“ Use Autolayout”,來判斷您是否正在使用自動布局:

在此處輸入圖片說明

例如,要在不使用自動布局時對frame進行動畫處理,假設您的UITextField具有一個名為textFieldIBOutlet ,則可以執行以下操作:

[UIView animateWithDuration:0.5 animations:^{
    CGRect frame = self.textField.frame;
    frame.size.width = 280;
    self.textField.frame = frame;
}];

但是,使用自動布局時的等效方法不是通過調整frame來實現,而是通過更改約束的constant量值來實現。 例如,假設您為UITextField上的名為textFieldWidthConstraintwidth約束創建了IBOutlet ,則可以使用類似以下內容的寬度變化動畫:

self.textFieldWidthConstraint.constant = 280;
[UIView animateWithDuration:0.5 animations:^{
    [self.view layoutIfNeeded];
}];

如果您認為自己正在使用與選擇的自動布局或非自動布局相對應的適當動畫技術,但仍然無法正常工作,則應向我們展示一些代碼並詳細描述這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM