我想通過隱藏工具欄,更改項目(按鈕,固定空間等)並再次顯示它來更改我的UIToolbar
中的項目。NavigationController UIToolbar更改項目
我目前在我的UIToolbar
上有一個按鈕,按下後,通過調用[[self navigationController]setToolbarHidden:YES animated:YES];
隱藏工具欄。
如何設置這些項目?是否可以使用接口生成器,還是需要對它們進行硬編碼?
我想通過隱藏工具欄,更改項目(按鈕,固定空間等)並再次顯示它來更改我的UIToolbar
中的項目。NavigationController UIToolbar更改項目
我目前在我的UIToolbar
上有一個按鈕,按下後,通過調用[[self navigationController]setToolbarHidden:YES animated:YES];
隱藏工具欄。
如何設置這些項目?是否可以使用接口生成器,還是需要對它們進行硬編碼?
您可以爲工具欄設置新項目是這樣的:
[toolbar setItems:<new_items_array> animated:YES];
它也將動畫的改變,所以你可能不需要隱藏,並再次顯示它,這不是一般的好UI做法。
我使用這種方法,我可以刪除工具欄項目,但無法讀取它們。爲什麼是這樣? – blake305
這是非標準行爲,但應該是可行的。您可能會考慮不是去除現有工具欄中的新按鈕並添加新按鈕,而是創建一個不同的工具欄,使其淡入。這將使編碼/調試更容易。一般來說,它只需要較少的「混亂」。
爲了達到所期望的行爲,你可以這樣做:
float animationDuration = .25;
[UIView animateWithDuration:animationDuration animations:*{
// Remove the old toolbar.
self.oldToolbar.alpha = 0;
// Fade the new toolbar in.
self.newToolbar.alpha = 1;
}];
本示例假設您已經加載的其他工具欄進入newToolbar
財產。讓我知道你是否需要進一步的幫助或解釋。
我將如何將新的工具欄放入視圖中? – Baub
奇數一個有點...這是一個有點哈克,但應該是完美的罰款:
[UIView animateWithDuration:0.5f animations:^{
// Remove the old toolbar.
self.oldToolbar.alpha = 0;
} completion:^(BOOL finished) {
//add code to change toolbar.
[UIView animateWithDuration:0.5f animations:^{
// Fade the new toolbar in.
self.newToolbar.alpha = 1;
}];
}];
它使用IB原因很明顯是不可能的。您需要將對象添加到UIToolbar,將它們設置爲null(隱藏它們時),並在您想再次顯示時將它們重新分配給UIToolbar。 – Legolas