【问题标题】:UIButton border on right and left sidesUIButton 左右边框
【发布时间】:2016-09-26 17:41:09
【问题描述】:

我一直无法在三个按钮之间设置边框或阴影以显示一些分隔。我尝试在中间按钮的左侧和右侧设置边框或阴影,但我只能在一侧获得阴影。任何帮助是极大的赞赏。

我试图让用户获得阴影但只显示在右侧:

    middleButton.layer.backgroundColor = UIColor.whiteColor().CGColor
    middleButton.layer.borderColor =  UIColor(red: 208/255, green: 208/255, blue: 208/255, alpha: 1.0).CGColor
    middleButton.layer.borderWidth = 0.0
    middleButton.layer.masksToBounds = false
    middleButton.layer.shadowColor = UIColor(red: 208/255, green: 208/255, blue: 208/255, alpha: 1.0).CGColor
    middleButton.layer.shadowOffset = CGSizeMake(0.5, 1.0)
    middleButton.layer.shadowOpacity = 1.0
    middleButton.layer.shadowRadius = 1.0

下面是我当前的视图,其中包含我试图在它们之间添加分隔符的三个按钮:

我在表格单元格中的层次结构:

【问题讨论】:

标签: ios swift uibutton swift2


【解决方案1】:

Swift 3 答案

你可以为 UIButton 做一个扩展

extension UIButton {

 func addRightBorder(borderColor: UIColor, borderWidth: CGFloat) {
    let border = CALayer()
    border.backgroundColor = borderColor.cgColor
    border.frame = CGRect(x: self.frame.size.width - borderWidth,y: 0, width:borderWidth, height:self.frame.size.height)
    self.layer.addSublayer(border)
 }

 func addLeftBorder(color: UIColor, width: CGFloat) {
    let border = CALayer()
    border.backgroundColor = color.cgColor
    border.frame = CGRect(x:0, y:0, width:width, height:self.frame.size.height)
    self.layer.addSublayer(border)
 }
}

然后您可以将它用于您的任何按钮。

middleButton.addRightBorder(borderColor: UIColor.white, borderWidth: 1.0)

middleButton.addLeftBorder(borderColor: UIColor.white, borderWidth: 1.0)

应该可以正常工作。快乐编码!

【讨论】:

  • 如何在uibutton中添加侧边框?
【解决方案2】:

在实际代码可能性存在限制的情况下,解决方案在于“收藏夹”、“分享”、“地图”的图形图标。

按钮之间的分隔边框/线可以在您拥有的按钮的图形图标创建中完成。 Adobe illustratorphotoshop。我在 illustrator 中重新创建了一个示例,将其作为图像带到“Assets.xcassets”,然后将其作为背景图像添加到按钮中。

按钮例如

模拟器的Snapshop如下...

【讨论】:

    【解决方案3】:

    另一种方法是将按钮添加到 UIStackView。有了它,您可以轻松管理您希望如何安排和分发子视图。

    添加 UIView 作为分隔符,宽度限制为 1 磅。在 UIStackView 上设置约束后,将分布属性设置为“等间距”,视图将根据它对齐。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多