我試圖找出一個乾淨的方式,使UIToolbar
只需要適應它所包含的項目一樣寬。有沒有辦法:調整UIToolbar以適應其項目?
- 配置
UIToolbar
自動調整其寬度,因爲它的項目被改變? - 以編程方式確定物品所需的最小寬度,然後可用於設置
UIToolbar
的框架?
我一直沒能算出這個因項目而事實上,UIBarButtonItem
s爲不UIView
子類之間的間距。
我試圖找出一個乾淨的方式,使UIToolbar
只需要適應它所包含的項目一樣寬。有沒有辦法:調整UIToolbar以適應其項目?
UIToolbar
自動調整其寬度,因爲它的項目被改變?UIToolbar
的框架?我一直沒能算出這個因項目而事實上,UIBarButtonItem
s爲不UIView
子類之間的間距。
我剛剛檢查了文檔,看起來像UIBarButtonItems,即使它們不是UIView子類,它們也有一個屬性width。我沒有自己嘗試,但我認爲你可以對每個項目的寬度進行求和,包括靈活的項目,並獲得工具欄的寬度。 希望它有幫助! ;)
試圖從其他的答案一些建議,並沒有工作,除非我用自定義視圖後,或除非一切都裝,我終於到達了一個辦法是根據它的項目設置工具欄的寬度:
//Add bar items to toolbar first.
UIView* v = toolbar.subviews.lastObject;
float newWidth = v.frame.origin.x + v.frame.size.width;
//Set toolbar width
您需要覆蓋UIToolbar -setItems:
或以其他方式檢測已更改的按鈕以自動調整大小。
我已將此功能包含在我的重構庫es_ios_utils中,用於通過多個按鈕設置導航項目的正確項目。在前面的鏈接中,請參閱UIToolbar +toolbarWithItems:
和UINavigationItem -setRightBarButtonItems
。
「UIToolbar」沒有子視圖。 – Dmitry 2017-10-31 04:13:05
我有一個barButtonItem與圖像啓動工具欄。我需要做的就是計算圖像的總寬度加上間隔(邊距)。
邊距默認爲11寬度。代碼將是:
let width: CGFloat = YourBarButtonItemList.reduce(0) {sofar, new in
if let image = new.image {
return sofar + image.size.width + 11
} else {
return sofar + ADefaultValueIfThisDoesntWork + 11
}
}
我很確定寬度是0,除非明確設置。 – 2011-05-22 18:53:16