UIToolBar 是透明的
Posted
技术标签:
【中文标题】UIToolBar 是透明的【英文标题】:UIToolBar is Transparent 【发布时间】:2015-07-03 06:47:11 【问题描述】:当我添加 UIToolBar 时,它看起来是透明的。但是,我不希望这种情况发生。这是我的代码:
var done = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: Selector("done"))
if let font = UIFont(name: "Avenir", size: 17.0)
done.setTitleTextAttributes([NSFontAttributeName: font], forState: .Normal)
toolBar.items = [done]
toolBar.barStyle = UIBarStyle.Default
self.birthdayTextField.inputAccessoryView = toolBar
我做错了什么吗?
【问题讨论】:
【参考方案1】:我自己也遇到过这个问题,我发现工具栏必须要么用非零帧实例化,要么调用sizeToFit
。
例如
let tb = UIToolbar()
tb.translucent = false
tb.items = [UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil), UIBarButtonItem.init(title: "A button", style: .Plain, target: self, action: Selector("someAction:"))]
tb.sizeToFit()
userField?.inputAccessoryView = tb
或
let tb = UIToolbar(CGRectMake(0,0,view.frame.width,44))
tb.translucent = false
tb.items = [UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil), UIBarButtonItem.init(title: "A button", style: .Plain, target: self, action: Selector("someAction:"))]
userField?.inputAccessoryView = tb
【讨论】:
【参考方案2】:试试这个 UIToolBar 透明代码:
self.toolbar.setBackgroundImage(UIImage(),
forToolbarPosition: UIBarPosition.Any,
barMetrics: UIBarMetrics.Default)
self.toolbar.setShadowImage(UIImage(),
forToolbarPosition: UIBarPosition.Any)
【讨论】:
对不起,如果我之前不清楚。我不希望我的 toolBar 是透明的。由于某种原因,我提供的代码生成了一个透明的工具栏。【参考方案3】:这应该禁用半透明/半透明效果
toolbar.translucent = false
【讨论】:
感谢您的回复!我试过这个,但它仍然有透明/半透明的效果。【参考方案4】:试试这个
toolBar.barStyle = UIBarStyle.Black
并确保toolBar.translucent = false
【讨论】:
【参考方案5】:在 Xamarin 中(与 swift 类似)
toolbar.Translucent = false;
toolbar.BarTintColor = color;
【讨论】:
以上是关于UIToolBar 是透明的的主要内容,如果未能解决你的问题,请参考以下文章