簡體   English   中英

故事板設計屏幕外子視圖

[英]Storyboard to design off screen subview

我想使用Storyboard來設計滑塊的內容,似乎設計脫機內容的一種簡單方法是使用childViewController。 所以我做到了

myViewController = [[UIStoryboard storyboardWithName:@"ipad" bundle:NULL] instantiateViewControllerWithIdentifier:@"keyPadOffScreen"];

[self addChildViewController:myViewController];
[myViewController didMoveToParentViewController:self];
newView = myViewController.view;
[self.view addSubview:newView];

然后,將整個視圖控制器添加到我的根視圖之上。 問題是,我只希望顯示一個子視圖,而不是整個視圖。 只要知道如何添加根視圖,就可以處理動畫。 我試圖這樣做只是添加子視圖(sliderView是我想要的子視圖的名稱),而不是整個視圖,但這沒做

newView = myViewController.sliderView;
[self.view addSubview:newView];

我應該使用其他策略嗎?

編輯:這確實可行,但似乎很愚蠢-將視圖大小設置為只是子視圖的大小。

  newView.frame = CGRectMake(newView.frame.origin.x, newView.frame.origin.y, newView.frame.size.width, **myViewController.sliderView.frame.size.height**);

僅從視圖來看,這似乎有點過大。 一旦開始做很多自定義視圖/動畫/過渡的工作,通常在代碼中更容易實現,或者至少對我來說是這樣,因為我已經做了很長時間了。

但是也許您想堅持使用Storyboard。 我尊重。 而且,如果您有一些開發人員在從事此工作,那么保持UI設置的一致性很重要。

無需將其保存在單獨的視圖控制器中並在需要時對其進行屏幕動畫處理時將其添加,只需將其添加到現有的視圖控制器中並將其設置為隱藏,或在IB中將其alpha設置為0.0。 然后,您的動畫可以撤消並使其可見。

您可以在此處使用自定義segue,例如:

@implementation FRPresentEnteringPopupSegue

- (void)perform
{
    FirstVC *toVC = self.destinationViewController;
    SecondNavigationController *fromVC = self.sourceViewController;
    toVC.view.frame = CGRectMake(0.0, 0.0, 300.0, 135.0);
    toVC.view.center = CGPointMake(fromVC.view.bounds.size.width/2, fromVC.view.bounds.size.height + toVC.view.bounds.size.height/2);
    [fromVC.view addSubview:toVC.view];
    [toVC viewWillAppear:YES];
    [UIView animateWithDuration:0.5
                          delay:0.0
         usingSpringWithDamping:0.7
          initialSpringVelocity:0.5
                        options:UIViewAnimationOptionBeginFromCurrentState
                     animations:^{
                         toVC.view.center = CGPointMake(fromVC.view.bounds.size.width/2, fromVC.view.bounds.size.height/2);
                     }completion:^(BOOL finished) {
                         [toVC viewDidAppear:YES];
                     }];
}

@end
  • 使您的UIStoryboardSegue子類
  • 覆蓋- (void)perform使用自定義視圖外觀代碼- (void)perform方法
  • 通常使用segue

暫無
暫無

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

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