为什么不显示以编程方式创建的(底部)工具栏按钮标题?
Why are programmatically created (bottom) toolbar button titles not displaying?
在 Swift 3 中,我以编程方式创建了一个(底部)工具栏,其中自定义按钮由一个灵活的垫片分隔以分隔自定义按钮,将一个 ("Previous") 推到左边缘另一个 ("Next") 在视图的右边缘。但是我无法显示按钮标题("Previous" 和 "Next")。请建议我。谢谢。这是我的代码:
首先,class声明和一些变量:
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
自定义视图或图像栏按钮项目没有标题。栏按钮项是标题或自定义视图或图像。如果您希望某些词出现在自定义视图或图像栏按钮项中,请将这些词作为自定义视图或图像的一部分。
这是我解决这个问题的方法。
我删除了试图为每个按钮分配标题的两个语句(我确实想知道为什么 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
这有效地将 "Previous" 放置在 left-pointing 按钮附近,将 "Next" 放置在 right-pointing 按钮附近,灵活的垫片在两者之间提供了一个很好的宽间隙。
在 Swift 3 中,我以编程方式创建了一个(底部)工具栏,其中自定义按钮由一个灵活的垫片分隔以分隔自定义按钮,将一个 ("Previous") 推到左边缘另一个 ("Next") 在视图的右边缘。但是我无法显示按钮标题("Previous" 和 "Next")。请建议我。谢谢。这是我的代码:
首先,class声明和一些变量:
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
自定义视图或图像栏按钮项目没有标题。栏按钮项是标题或自定义视图或图像。如果您希望某些词出现在自定义视图或图像栏按钮项中,请将这些词作为自定义视图或图像的一部分。
这是我解决这个问题的方法。
我删除了试图为每个按钮分配标题的两个语句(我确实想知道为什么 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
这有效地将 "Previous" 放置在 left-pointing 按钮附近,将 "Next" 放置在 right-pointing 按钮附近,灵活的垫片在两者之间提供了一个很好的宽间隙。