2017-09-14 341 views
-2

我想取消隱藏帶有動畫的UIView,但它不適用於iphone模擬器5.在取消隱藏除5和5之外的所有其他模擬器後,視圖顯示正常。如何用動畫取消隱藏UIView

可能是什麼原因。無法檢測到問題。任何幫助?

/*To unhide*/ 
    self.view4.hidden=NO; 

    [UIView animateWithDuration:0.5 animations:^{ 
     self.view4.frame = CGRectMake(2, 70, 70, 300); 
     self.view4.alpha = 1.0f; 
    } completion:^(BOOL finished) { 
    }]; 

    //for showing view3 
    self.view3.hidden=NO; 

    [UIView animateWithDuration:0.5 animations:^{ 
     [self.view3 setFrame:CGRectMake(0, 303, 320, 95)]; 
     self.view3.alpha = 1.0f; 
    } completion:^(BOOL finished) { 
    }]; 
按鈕

點擊VIEW3不會出現:(。view4顯示正常。我還通過改變幀值,但沒有取得任何進展試過。在隱藏和減少阿爾法消失的VIEW3動畫出現在屏幕上,但不顯示它。

iPhone6splus

iPhone5 Screen

回答

0

的問題是很難的一組座標所使用。如果你檢查self.view.bounds(或self.view3.superview。你會注意到視圖在iPhone 5上沒有相同的尺寸,在iPhone 6/7或iPhone 6Plus/7Plus上沒有。您應該計算相對於self.view.bounds指標的視圖位置。

// for showing view 3 
self.view3.hidden=NO; 
[UIView animateWithDuration:0.5 animations:^{ 
    CGRect parentBounds = self.view.bounds; 
    CGRect destinationFrame = CGRectMake(0,parentBounds.size.width,parentBounds.size.height-95,95); 
    [self.view3 setFrame:destinationFrame]; 
    self.view3.alpha = 1.0f; 
} completion:^(BOOL finished) { 
}]; 

視圖現在應該總是父視圖範圍內出現,並在iPhone 5

祝你的項目可見!

+0

它不工作:( –

+0

@ShahiJabeen我可以有更多的背景知道這段代碼是在UIViewController實現中運行還是在UIView和「self」的關係中運行?你如何創建view3以及它是如何不同的view4是view3的孩子,反之亦然? – ekscrypto

+0

「它不工作」是你可以在SO上說的最不有用的東西之一。詳細描述它實際在做什麼,描述你的視圖是如何設置的並在屏幕上顯示它們的狀態,並顯示完整的代碼,而不是片段,你說:「在隱藏和減少alpha消失view3在屏幕上顯示動畫,但不顯示它」,這真的沒有道理 –