右侧和左侧的UIButton边界

时间:2016-05-28 13:15:40

标签: ios swift uibutton swift2

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

我试图用来获取阴影但只显示在右侧:

    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

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

enter image description here

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

enter image description here

3 个答案:

答案 0 :(得分:4)

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)

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

答案 1 :(得分:0)

如果对实际代码的可能性有限制,那么解决方案就是您拥有的图形图标,用于“收藏”,“共享”,“地图”等。

按钮之间的分隔符边框/线可以在图形图标创建中为您拥有的按钮完成。 Adobe 插图画家 photoshop 。我已经在插画家中重新创建了一个样本,并将其带到了Assets.xcassets'作为图像,将其添加为按钮。

按钮,例如

enter image description here

模拟器的Snapshop如下......

enter image description here

答案 2 :(得分:0)

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

将UIView添加为宽度约束为1磅的分隔符。在UIStackView上设置约束后,将distribution属性设置为“Equal Spacing”,视图将根据它进行对齐。

example