為xib拖拽的空間添加動畫

最近公司經(jīng)營了一個新的項目,項目的宗旨是做一個交友的app,在項目開發(fā)過程中本人負(fù)責(zé)個人主頁等相關(guān)頁面。

因為是一個娛樂性的交友a(bǔ)pp,免不了界面要鮮艷、有吸引力,尤其是在個人主頁這一塊,要多一些小動畫,可以讓個人主頁免于顯得過于單調(diào)。

由于本項目的個人主頁設(shè)計類似于微博的的個人主頁,所以就擅自作主加了類似其的動畫。即點擊頭像可以放大。

剛開始做動畫的時候代碼的邏輯是這樣的,請看一下代碼:

- (void)showBigImgAnimation{

? ?/*隱藏子控件*/

? ?[self animationHideView];

? ?[UIView animateWithDuration:.25 animations:^{

? ? ? ?_userHeadImgVIew.x = 0;

? ? ? ?_userHeadImgVIew.y = 0;

? ? ? ?_userHeadImgVIew.width = SCREEN_WIDTH;

? ? ? ?_userHeadImgVIew.height = HeadViewDefaultH + tabH;

? ?} completion:^(BOOL finished) {

? ? ? ?isHaveScaled = YES;

? ?}];

}

- (void)hideBigImgAnimation{

? ?/*顯示子控件*/

? ?[self animationShowView];

? ?[UIView animateWithDuration:.25 animations:^{

? ? ? ?_userHeadImgVIew.x = initX;

? ? ? ?_userHeadImgVIew.y = initY;

? ? ? ?_userHeadImgVIew.width = initImgW;

? ? ? ?_userHeadImgVIew.height = initImgH;

? ?} completion:^(BOOL finished) {

? ? ? ?isHaveScaled = NO;;

? ?}];

}

弄好了之后發(fā)現(xiàn)動畫不是預(yù)料中的樣子,各種調(diào)試之后還是沒有達(dá)到理想的效果。最后突然想到我的界面是用xib拖拽的,而且添加了約束,就把相關(guān)的約束條件鏈接到 .m文件里。然后在動畫中修改約束。結(jié)果真的成功了。成功之后的代碼如下所示:

- (void)showBigImgAnimation{

? ?_userHeadImgVIew.layer.cornerRadius =0;

? ?_userHeadImgVIew.layer.borderWidth = 0;

? ?_userHeadImgVIew.layer.borderColor = [[UIColor clearColor] CGColor];

? ?_userHeadImgVIew.layer.masksToBounds = YES;

? ?//隱藏控件

? ?[self animationHideView];

? ?_imgViewWidth.constant = SCREEN_WIDTH;

? ?_imgViewHeight.constant = HeadViewDefaultH + tabH;

? ?_imgViewTopMargin.constant = 0;

? ?[UIView animateWithDuration:.3 animations:^{

? ? ? ?[_userHeadImgVIew.superview layoutIfNeeded];

? ?} completion:^(BOOL finished) {

? ? ? ?isHaveScaled = YES;

? ? ? ?[self showSaveImgView];

? ?}];

}

- (void)hideBigImgAnimation{

? ?[self hideSaveImgView];

? ?_imgViewWidth.constant = initImgW;

? ?_imgViewHeight.constant = initImgH;

? ?_imgViewTopMargin.constant = initImgTopMarginValue;

? ?[UIView animateWithDuration:.3 animations:^{

? ? ? ?[_userHeadImgVIew.superview layoutIfNeeded];

? ?} completion:^(BOOL finished) {

? ? ? ?isHaveScaled = NO;

? ? ? ?_userHeadImgVIew.layer.cornerRadius = _userHeadImgVIew.width/2;

? ? ? ?_userHeadImgVIew.layer.borderWidth = 2.5;

? ? ? ?_userHeadImgVIew.layer.borderColor = [[UIColor colorWithHexString:@"#ffffff" withAlpha:0.5] CGColor];

? ? ? ?_userHeadImgVIew.layer.masksToBounds = YES;

? ? ? ?[self animationShowView];

? ?}];

}

至于為什么用[_useHeadImgView.superView layoutIfNeeded];

可以查閱一下layoutIfNeeded的調(diào)用機(jī)制。有空的話我也會認(rèn)真學(xué)習(xí)一下layoutIfNeeded調(diào)用機(jī)制 并分享給大家

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,270評論 5 13
  • 在iOS實際開發(fā)中常用的動畫無非是以下四種:UIView動畫,核心動畫,幀動畫,自定義轉(zhuǎn)場動畫。 1.UIView...
    請叫我周小帥閱讀 3,325評論 1 23
  • - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *...
    七里田間的守望者閱讀 1,529評論 0 4
  • iOS_autoLayout_Masonry 概述 Masonry是一個輕量級的布局框架與更好的包裝AutoLay...
    指尖的跳動閱讀 1,319評論 1 4
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,694評論 6 30

友情鏈接更多精彩內(nèi)容