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 是透明的的主要内容,如果未能解决你的问题,请参考以下文章

UIToolBar 背景透明

如何让 UIToolbar 的背景透明? [复制]

UIWebView 上的透明 UIToolBar

当半透明为假时,UIToolBar 上的 Bar Tint

iOS7如何绘制透明的UIToolbar或UINavigationBar

为啥黑色半透明 UIToolbar 的顶部与黑色半透明 UISearchBar 不同,如何使它们看起来相同?