0
我有一個UIView
子類(用於處理拖放操作),並使用界面構建我添加了兩個子視圖:UIImageView
和UILabel
。更新超視圖幀更改後子視圖的約束
兩者都有限制:
UIImageView
邊框搭配,以填補所有可用空間的上海華邊界。 UILabel
居中垂直和水平。
在這裏你可以看到三個(superview背景是綠色的)。當我動畫在上海華一幀變化
我的問題就來了。超級觀點看起來不錯,但其子視圖變得瘋狂。
在這裏,你可以看到它(忽略棕色方形,是從另一個視圖)
正如你所看到的,子視圖「秋天」,從上海華盈,儘管我打電話updateConstraints
每個子視圖。
我知道將AutoLayout與setFrame混合是一種糟糕的做法,但這是我知道這樣做的唯一方法。
謝謝
爲什麼不移除superview並將UIImageView的背景設置爲綠色?然後使用正確的contentmode正確的尺寸圖像,看到這個問題:http://stackoverflow.com/questions/4895272/difference-between-uiviewcontentmodescaleaspectfit-and-uiviewcontentmodescaletof –
我試過了,但後來我無法將UILabel設置爲UIImageView的子視圖。此外,綠色只是暫時的。 – WedgeSparda
您可能包含源代碼嗎?你所描述的行爲是預期會發生的事情。需要考慮的幾件事情:在控制檯運行時是否收到任何警告?如果約束無法解決,有些將被銷燬,您會在日誌中發出警報。除非實際修改它們,否則不應在子視圖上調用「-updateConstraints」。在你的情況下,這聽起來不是必要的。你如何處理拖動視圖的位置?如果視圖的位置有約束,但是您修改了框架,則可能會發生意外的行爲 –