[英]Subclassing UINavigationBar with Swift
我正在編寫一個應用程序,向用戶提供要花費的令牌,並且想要在UINavigationBar
顯示用戶當前的令牌數量。 我想要的是帶有令牌數量的標簽,並且在導航欄的右上角有一個硬幣的圖像。
我一直在尋找自定義UINavigationBar
,並且發現了很多與添加圖像以覆蓋整個欄以及更改標題有關的帖子。 但是,我找不到一種簡單的方法來做自己想要的事情。
我想我需要UINavigationBar
並自己添加文本/圖像,但是對於iOS開發和Swift來說,我還是很陌生,我希望有人可以為我指明正確的方向。
您可以創建一個包含子視圖UILabel
和UIImageView
的自定義視圖,以顯示令牌編號和令牌圖像。 將其添加到導航控制器的右欄按鈕項。
它看起來像:
下面的代碼將創建自定義視圖。 在這里您可以觀察到它是一個局部變量。 但是,您可以管理用於自定義視圖的全局變量,也可以創建一個全新的類,並對其進行獨立管理以進行實時更新以顯示令牌號。
// Custom to hold token number and image
let tokenView = UIView(frame: CGRect(x:0, y:0, width:100, height:44))
tokenView.backgroundColor = UIColor.yellow
// Label to show token number
let tokenLabel = UILabel(frame: CGRect(x:0, y:0, width:60, height:44))
tokenLabel.text = "1234"
tokenLabel.textAlignment = NSTextAlignment.right
let imageHeight = CGFloat(30)
let marginY = CGFloat((tokenView.frame.size.height / 2) - (imageHeight / 2))
// ImageView to display token image
let tokenImage = UIImageView(image: UIImage(named: "coin"))
tokenImage.frame = CGRect(x:70, y:marginY, width:30, height:30)
tokenView.addSubview(tokenLabel)
tokenView.addSubview(tokenImage)
// Add custom view as a right bar button item
let barButtonItem = UIBarButtonItem(customView: tokenView)
self.navigationItem.rightBarButtonItem = barButtonItem
要顯示當前的令牌數量,您只需設置標題即可。 在您的視圖控制器中:
navigationItem.title = '\(numberOfCoins) coins"
如果您想做更多的事情,可以設置自己的標題視圖,而不是標准的UILabel:
navigationItem.titleView = UIView(...) // your custom view
要在右上角顯示硬幣,請設置rightBarButtonItem
:
navigationItem.rightBarButtonItem = UIBarButtonItem(
image: UIImage(named:"Coin"),
style: .Plain,
target:self,
action:"tappedCoinButton:")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.