swift2 UIButton左右两边的边框

c2e8gylq  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(232)

我一直无法在三个按钮之间建立框缐或阴影来显示分隔。我尝试在中间按钮的左右两侧建立框缐或阴影,但只能在一侧建立阴影。如有任何协助,敬请见谅。

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

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

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

在表格单元格中为它设置的层次结构:

kupeojn6

kupeojn61#

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)

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

zed5wv10

zed5wv102#

在实际代码可能性有限制的地方,解决方案是使用您拥有的“收藏夹”、“共享”、“Map”等图形图标。
按钮之间的分隔边框/线可以在图形图标创建中为您拥有的按钮完成。Adobeillustratorphotoshop。我已经在illustrator中重新创建了一个示例,将其作为图像带到“Assets.xcassets”中,将其作为背景图像添加到按钮中。
按钮,例如

模拟器的Snapshop如下...

dced5bon

dced5bon3#

另一种方法是将按钮添加到UIStackView中。使用它,您可以轻松地管理子视图的排列和分布方式。
添加UIView作为分隔符,宽度约束为1磅。在UIStackView上设置约束后,将分布属性设置为“相等间距”,视图将根据该属性对齐。

相关问题