swift - 更改顶部UIToolbar边框的颜色

时间:2016-09-09 18:28:30

标签: swift uitoolbar

我正在尝试更改UIToolbar上顶部边框的颜色。

我试过了:

layer.borderWidth = 1
layer.borderColor = UIColor(r: 250, g: 250, b: 250).CGColor

那不起作用。

连连呢?谢谢

6 个答案:

答案 0 :(得分:3)

我使用此代码完成了它:

class ViewController: UIViewController {

  @IBOutlet weak var toolBar: UIToolbar!

  override func viewDidLoad() {
    super.viewDidLoad()

    // the layer with the width of the device
    // and height of 0.5 px
    let topBorder = CALayer()
    topBorder.frame = CGRectMake(0, 0, view.frame.size.width, 0.5)
    topBorder.backgroundColor = UIColor.redColor().CGColor

    // adding the layer to the top
    // of the toolBar
    toolBar.layer.addSublayer(topBorder)
  }
}

结果:

enter image description here

来源:https://blog.adamcooke.io/set-the-top-border-colour-of-a-uinavbar-d9035c6b4fdb#.f37molpsj

答案 1 :(得分:1)

如果你不喜欢它的颜色,并且因为它不可能改变它,最快的黑客就是摆脱那个发际线 - 它实际上不是一个边界,它是一个阴影

toolbar.clipsToBounds = true

OR:

toolbar.layer.shadowOpacity = 0

或许你可以改变它的阴影图像:

UITabbar.appearance().shadowImage = UIImage.colorForNavBar(.red)

答案 2 :(得分:0)

UIColor在0和1之间工作,例如:

如果你想要250作为红色值,你需要做250/255。我遇到了同样的问题,发现只需在颜色之后添加/ 255颜色就可以正常工作。

/ 255在适当的范围内创建值。你也可以进行除法并输入十进制近似值。

如果您需要更多帮助或澄清,请告知我们。

答案 3 :(得分:0)

您需要将RGB颜色除以255.0以获得0到1的颜色。

例如:

layer.borderWidth = 1
layer.borderColor = UIColor(r: 250/255, g: 250/255, b: 250/255).CGColor

答案 4 :(得分:0)

您可以使用:

- (void)setToolbarLineWith:(UIColor *)color
{
    for(UIView *v in self.navigationController.toolbar.subviews){
        if([NSStringFromClass([v class]) isEqualToString:@"_UIBarBackground"])
        {
            for(UIView *w in v.subviews){
                if([NSStringFromClass([w class]) isEqualToString:@"UIImageView"])
                {
                    [w setBackgroundColor:color];
                }
            }
        }
    }
}

并运行:

[self setToolbarLineWith:[UIColor redColor]];

答案 5 :(得分:0)

实际上是阴影图像,因此只需创建具有必要颜色的1像素图像并使用

[toolbar setShadowImage:<your image> forToolbarPosition:UIBarPositionAny];