我「米想盡我同步我的數據庫時禁用rightButton在我的導航欄,我子類化的導航欄,因爲我需要一點點向上移動的項目。斯威夫特無法使用UINavigationButton 2.2
現在,我嘗試在layoutSubviews期間禁用正確的Button。我能夠獲得UINavigationButton類型的UIView。一旦嘗試將UIView強制轉換爲UINavigationButton,我會收到錯誤消息:「使用未聲明的類型'UINavigationButton'」。所以我想我只需要導入另一個庫,但是看起來這個類是不可訪問的?或者有人知道要導入什麼?
這是我目前的方法,因爲我可以讀取動態類型並將其轉換爲字符串,我用它來決定我需要移動哪一個。
let navigationBarItems = self.subviews
var lableInserted = false
var buttons:[UIView] = []
for navigationBarItem in navigationBarItems{
print(String(navigationBarItem.dynamicType))
if String(navigationBarItem.dynamicType) == "_UINavigationBarBackground"{
if syncBarDataSource != nil{
navigationBarItem.frame.origin.y = bounds.origin.y + CGFloat(syncBarDataSource!.barHeight) - CGFloat(maxHeight/2)
navigationBarItem.frame.size.height = bounds.size.height + CGFloat(maxHeight)
} else {
navigationBarItem.frame.origin.y = bounds.origin.y - CGFloat(maxHeight/2)
navigationBarItem.frame.size.height = bounds.size.height + CGFloat(maxHeight)
}
}
if String(navigationBarItem.dynamicType) == "UINavigationButton" || String(navigationBarItem.dynamicType) == "UINavigationItemButtonView"{
buttons.append(navigationBarItem)
}
if let lable = navigationBarItem as? UILabel{
lableInserted = true
lable.text = syncBarDataSource.text
if syncBarDataSource!.barHeight > 0{
lable.hidden = false
} else {
lable.hidden = true
}
}
}
但是,如果我想投像
navigationBarItem as? UINavigationButton
我得到的描述錯誤
請分享您的代碼? –