2012-10-10 21 views
0

我有一個UIToolbar在我的視圖頂部,它需要在一個動畫來調整大小。工具欄包含:利用系統項目UIBarButtonSystemItemAdd(的 '+' 按鈕) 調整大小UIToolbar拒絕,以保持它的UIBarButtonItem排列正確

  • 一個UIBarButtonItem使用自定義視圖

    • 一個UIBarButtonItem使用樣式UIBarButtonItemStyleBordered( '編輯'(標題)
    • 一個UIBarButtonItem按鈕)

    我加入使用每個之間的間隔,這使標題在中心這些按鈕:

    [toolbar setItems: @[addButton, spacer, titleButton, spacer, editButton] animated:NO]; 
    

    Original Size

    工具欄調整大小就好了,和兩個按鈕保持釘在外邊它們的位置。但是,標題按鈕不會留在工具欄的中心。相反,它似乎將它固定在同一位置的右側,在其左側創建一個空間。在動畫期間,這給人的印象是它向右滑動。

    Expanded Size

    要清楚,我想要的標題欄,以保持其相同的寬度 - 我不希望它擴大爲工具欄的增長。但我需要標題留在工具欄的中心。

    由於UIBarButtonItem不是UIView,我不能(?)使用autoresizingmask功能。

    如何保持在工具欄的中心的稱號?

    附加信息

    這可能是因爲添加和編輯按鈕的寬度不同 - 當我只添加標題(與間隔兩側),該行爲是正確的。

  • 回答

    0

    事實證明,我遺漏了一個關鍵的細節。編輯按鈕的width如果被刪除我手動設置到50

    ,調整大小按預期工作。但是,我無法控制編輯按鈕的大小,我喜歡將其設置爲50,以便與導航欄上的編輯按鈕匹配。

    我找到了一個可行的解決方案。將編輯按鈕的寬度保持爲50.在「+」按鈕後立即添加一個固定分隔符,並將其寬度設置爲18(50 - 「+」按鈕的寬度)。這可以平衡標題的任何一方。

    0

    本, 我知道它太糟糕了,你仍然可以使用自定義按鈕欄按鈕項目,並在使用它添加/編輯按鈕的圖像。這樣你就可以在任何地方設置按鈕框架。所以你的按鈕不會放在最正確的地方。

    UIButton * addButton = [[UIButton alloc] init]; 
    [addButton setBackgroundImage:<AddimageName> forState:UIControlStateNormal]; 
    UIBarButtonItem * addItem = [[UIBarButtonItem alloc] initWithCustomView:addButton]; 
    
    相關問題