2017-07-24 20 views
0

在Swift 3中,我編程式地創建了一個帶有由彈性分隔符分隔的自定義按鈕的(底部)工具欄,以分離自定義按鈕,將一個(「前一個」)推到左邊和另一個(「下一個」)視圖的右邊緣。但我一直無法顯示按鈕標題(「上一個」和「下一個」)。請建議我。謝謝。這裏是我的代碼:爲什麼編程方式創建(底部)工具欄按鈕標題沒有顯示?

首先,類聲明和幾個變量:

class TextsController: UIViewController,UIGestureRecognizerDelegate { 

let textWebView = WKWebView(frame: .zero) 
var toolbar:UIToolbar? 

接下來,在viewDidLoad中:

view = textWebView 

    // Create (bottom) toolbar: 
    let frame = CGRect(x: 0, y: UIScreen.main.bounds.size.height-44, width: UIScreen.main.bounds.size.width, height: 44) 
    toolbar = UIToolbar(frame: frame) 
    toolbar?.sizeToFit() 
    toolbar?.isHidden = true 
    self.view.addSubview(toolbar!) 
    self.toolbar?.isTranslucent = false // Required for setting tintColor & barTintColor below 

    toolbar?.tintColor = UIColor(red: 0.5, green: 0.0, blue: 1.0, alpha: 1.0) //purple for toolbar items 
    toolbar?.barTintColor = UIColor.white //white for toolbar color 

    let triangleLeftButton = UIBarButtonItem(image: UIImage(named: "triangleLeft_15x20"), style: .plain, target: self, action:#selector(showPrevious)) 
    let flexibleSpacer = UIBarButtonItem(barButtonSystemItem:.flexibleSpace , target: self, action: nil) 
    let triangleRightButton = UIBarButtonItem(image: UIImage(named: "triangleRight_15x20"), style: .plain, target: self, action:#selector(showNext)) 

    triangleLeftButton.title = "Previous" 
    triangleRightButton.title = "Next" 

    var items = [UIBarButtonItem]() 
    items.append(triangleLeftButton) 
    items.append(flexibleSpacer) 
    items.append(triangleRightButton) 
    toolbar?.items = items 

回答

0

這是我如何解決這一點。我試圖爲每個按鈕分配一個標題(我想知道爲什麼Xcode沒有標記,允許我爲每個標題初始分配,雖然標題不會顯示)。

我重寫(代碼在問題下面的代碼比較)的UIBarButtonItems如下現在包括兩個文本項:

// Create toolbar items (buttons and texts) 
    let triangleLeftButton = UIBarButtonItem(image: UIImage(named: "triangleLeft_15x20"), style: .plain, target: self, action:#selector(showPrevious)) 
    let triangleLeftText = UIBarButtonItem(title: "Previous", style: .plain, target: nil, action: nil) 
    let flexibleSpacer = UIBarButtonItem(barButtonSystemItem:.flexibleSpace , target: self, action: nil) 
    let triangleRightText = UIBarButtonItem(title: "Next", style: .plain, target: nil, action: nil) 
    let triangleRightButton = UIBarButtonItem(image: UIImage(named: "triangleRight_15x20"), style: .plain, target: self, action:#selector(showNext)) 

然後我追加的一切,包括兩個新的文本項目,到陣列:

var items = [UIBarButtonItem]() 
    items.append(triangleLeftButton) 
    items.append(triangleLeftText) 
    items.append(flexibleSpacer) 
    items.append(triangleRightText) 
    items.append(triangleRightButton) 
    toolbar?.items = items 

這有效地放置「上一個」鄰近指向左邊的按鈕和「下一步」鄰近指向右邊的按鈕,與柔性隔離物之間,得到一個很好的寬的間隙。

0

自定義視圖或圖像欄按鈕項沒有標題。酒吧按鈕項是要麼標題自定義視圖的圖像。如果你想一些字出現在自定義視圖或圖像欄按鈕項目,使自定義視圖或圖像的那些話的一部分。

+0

在下方有標題想象的圖像,你可能會被混淆了一個UITabBarItem一個的UIBarButtonItem。 – matt

+0

謝謝你的回覆。但我打算使文本(我稱之爲「標題」)動態地改變,這取決於文本目前顯示在WKWebView。例如,如果我當前在第2頁上,我希望triangleLeft按鈕顯示「1」,而triangleRight按鈕顯示「3」(我僅僅使用「Previous」和「Next」作爲我想要解決的臨時佔位符後來)。我稍後將添加功能,使這些按鈕可以將頁面1或頁面3召喚到WKWebView。因此,將所需的單詞作爲自定義圖像的一部分不會有幫助。 – WilliamP

+0

繼續並「打算」。但這不是什麼UIBarButtonItem _is_。現實超越。 – matt

相關問題