【问题标题】:Bar Button Item No Corner Radius条形按钮项目无角半径
【发布时间】:2019-01-05 22:02:51
【问题描述】:

我试图给这个条形按钮项目标签一个绿色背景,然后是一些圆角半径。

    utcLbl.frame = CGRect(x: 0, y: 0, width: 100, height: 20)
    utcLbl.text = "\(dateFormatter.string(from: Date())) UTC"
    utcItem.customView = utcLbl
    utcLbl.backgroundColor = UIColor.green
    utcLbl.layer.cornerRadius = 20
    utcLbl.textAlignment = .center
    self.navigationItem.setLeftBarButtonItems([utcItem], animated: true)

这是代码和图片

任何关于让绿色背景具有圆角半径的帮助。

【问题讨论】:

  • 如果您添加一些标签会有所帮助。我不知道这是什么语言
  • @JohnLord 有swift 标签
  • 尝试将 clipstoBounds 和/或 maskToBounds 属性设置为 true
  • @emrepun 谢谢,但没用。也许 bc 它是 barButtonItem?还有其他想法吗??
  • 从下面的答案看起来好像有效? :) @RileyLunz

标签: swift navbar cornerradius


【解决方案1】:

你需要clipToBounds或maskToBounds

utcLbl.frame = CGRect(x: 0, y: 0, width: 100, height: 20)
utcLbl.text = "\(dateFormatter.string(from: Date())) UTC"
utcItem.customView = utcLbl
utcLbl.backgroundColor = UIColor.green
utcLbl.layer.cornerRadius = 20
utcLbl.textAlignment = .center
utcLbl.layer.masksToBounds = true // Or utcLbl.clipsToBounds = true
self.navigationItem.setLeftBarButtonItems([utcItem], animated: true)

【讨论】:

  • 乐于助人。祝你好运
  • 我使用哪一个会有所不同吗?他们似乎都工作
  • 两者在功能上是相同的。但只是为了快速解释一下:clipsToBounds 在 subViews 上完成工作,而 maskToBounds 在 subLayers 上完成工作。
  • 是更快或更高效的@Galo Torres Sevilla 吗?
  • 两者几乎相同。在视图刷新方面相同的计算量和相同的工作量。现在,如果你开始谈论效率,我通常会尽量避免cornerRadius,主要是因为它需要计算量,如果你考虑屏幕的刷新率和它必须在主队列中显示所有内容的时间,它效率不高,如果使用过多可能会导致性能问题。如果你只有一个按钮应该没问题。但如果你要经常使用它,我建议你创建一个遮罩层和子类 UILabel。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
相关资源
最近更新 更多