2012-04-22 47 views

回答

1

我得到這個使用下面的工作(免責聲明:這可能違反HIG!):

  1. 我添加了一個新的,基本的UIViewController。
  2. 我添加了一個UIToolbar到UIViewController的視圖。我將這個UIToolbar連接到名爲「BaseToolbar」的UIViewController中的一個屬性。
  3. 要「BaseToolbar」,我添加了一個按鈕。我將這個按鈕連接到了我的UIViewController中的一個名爲「AddPressed:」的IBAction。
  4. 我添加了一個UIToolbar到UIViewController的xib,但是不在UIViewController的視圖。我只是將它添加到設計表面。我將這個UIToolbar連接到名爲「SecondToolbar」的UIViewController中的一個屬性。
  5. 要「SecondToolbar」,我添加了一個按鈕。我將這個按鈕連接到我的UIViewController中名爲「TrashPressed:」的IBAction。

我用下面的代碼:

- (IBAction)AddPressed:(id)sender { 
    CGRect secondCurrRect = [[self SecondToolbar] frame]; 
    [[self SecondToolbar] setFrame:CGRectMake(0, -1 * secondCurrRect.size.height, secondCurrRect.size.width, secondCurrRect.size.height)]; 
    [[self view] addSubview:[self SecondToolbar]]; 
    [[self view] bringSubviewToFront:[self SecondToolbar]]; 
    [UIView animateWithDuration:1.0 
        animations:^(void){ 
         [[self SecondToolbar] setFrame:CGRectMake(0, 0, secondCurrRect.size.width, secondCurrRect.size.height)]; 
        }]; 
} 
- (IBAction)TrashPressed:(id)sender { 
    CGRect secondCurrRect = [[self SecondToolbar] frame]; 
    [UIView animateWithDuration:1.0 
        animations:^(void){ 
         [[self SecondToolbar] setFrame:CGRectMake(0, -1 * secondCurrRect.size.height, secondCurrRect.size.width, secondCurrRect.size.height)]; 
        } 
        completion:^(BOOL finished) { 
         [[self SecondToolbar] removeFromSuperview]; 
        }]; 
} 

使用代碼,新UIToolbar滑動開/關在頂部的 「基地」 UIToolbar。


編輯/更新

讓我們嘗試不同的戰術。 (這是假設你要添加在設計時UIToolbar對象的廈門國際銀行)

  1. 添加工具欄#1(一個是始終在屏幕上)到視圖的頂部,它像位置你要。
  2. 在工具欄#1下方添加工具欄#2(滑動/滑動的工具欄)並使用所需按鈕構建它。
  3. 將下面的代碼行到你的-(void)viewDidLoad方法(這將移動第二個工具欄關閉屏幕):

[[self Toolbar2] setFrame: 
    CGRectMake(0,         // origin.x 
       -[[self Toolbar2] frame].size.height, // origin.y 
       [[self Toolbar2] frame].size.width, // size.width (remains the same) 
       [[self Toolbar2] frame].size.height) // size.height (remains the same) 
]; 

然後,從上面使用的代碼,而是跳轉到來電addSubview:removeFromSuperview

現在有道理嗎?

+0

你能解釋一下嗎?請問?感謝您的解釋 – 2012-05-02 14:55:35

+0

因此,通常在Interface Builder中,您有一個主視圖,並將所有子視圖添加到該視圖。然而,它不一定是那樣。你可以在主視圖外添加任何你想要的***。它出現在與其他視圖相同的「對象」層次結構中,而它們本質上是無關的。但是,您仍然可以創建IBOutlet/IBAction連接。這樣,直到你編程調用'addSubview',第二個'UIToolbar'與你的主視圖無關。 – mbm29414 2012-05-02 18:16:44

+0

或者,您可以將第二個'UIToolbar'添加到您的主視圖並將其定位,使其離開屏幕。然後,您可以簡單地管理/製作其框架以使其顯現/消失。不過,我喜歡真正將它放在屏幕上,這就是我稱之爲「addSubview:」和「removeFromSuperview」的原因。 – mbm29414 2012-05-02 18:21:58