我一個觀點,即應該從底部如何添加視圖(和收縮或伸展等)的iOS
此視圖(在下面的屏幕截圖示出)彈出中,和動畫應該隱藏和彈出中(屏幕5-> 6隱藏)(屏幕6-> 5彈出)。
你可以看到一個UIWebView(文本視圖是一個UIWebView),必須縮小並適當拉長。
我不知道什麼是正確的方法來做到這一點。我應該創建320pt x 0pt視圖(這將隱藏,因爲它沒有高度),然後動畫它的「高度」屬性,並更新高度約束?或者我應該採取不同的方法?
我使用故事板系統。
非常感謝您的時間和回答
我一個觀點,即應該從底部如何添加視圖(和收縮或伸展等)的iOS
此視圖(在下面的屏幕截圖示出)彈出中,和動畫應該隱藏和彈出中(屏幕5-> 6隱藏)(屏幕6-> 5彈出)。
你可以看到一個UIWebView(文本視圖是一個UIWebView),必須縮小並適當拉長。
我不知道什麼是正確的方法來做到這一點。我應該創建320pt x 0pt視圖(這將隱藏,因爲它沒有高度),然後動畫它的「高度」屬性,並更新高度約束?或者我應該採取不同的方法?
我使用故事板系統。
非常感謝您的時間和回答
1)設計你的屏幕就像鑑於5
2)設置了彈出視圖的「打開」高度的限制。上面的視圖的底部需要連接到彈出視圖的頂部,並且頂部視圖顯然不應具有固定的高度。
3)創建了高度約束
4)在windowDidLoad的直銷店通過獲取它從約束(這樣你就不必在代碼分開維護它的「打開」的高度)。例如(其中_popUpHeight是CGFloat的成員變量):在需要時
- (void)viewDidLoad
{
_popUpHeight = _popUpHeightConstraint.constant;
}
5)動畫的約束。這樣的事情:
- (IBAction)togglePopup:(id)sender {
[UIView animateWithDuration:5
animations:^{
_addBannerDistanceFromBottomConstraint.constant = (_popupState) ? 0 : _popUpHeight;
}];
_popupState = !_popupState;
}
你的意思是「viewDidLoad」? –
NSAnimationContext僅適用於Mac OS ...我想。 –
糟糕 - 我只是從我當前的項目中攫取了一大塊代碼,卻沒有想到。我已經更新了安裝程序 – tarmes
試試這個代碼:
[UIView animateWithDuration:duration
delay:delay
options:UIViewAnimationOptionCurveEaseInOut
animations:^(void) {
viewToChange.frame = CGRectMake(x, y, width, height);
}
completion:NULL];
您將需要viewToChange的出口。
動畫高度是一個很好的解決方案。 – tarmes
@tarmes 1.故事板設計視圖(如第5屏)2.使視圖高度爲0pt。 3.這個視圖的動畫高度屬性? –