我在检查器中看到我可以改变背景颜色,但是我想改变边框的颜色和粗细,可以吗?


当前回答

view.layer.borderWidth = 1.0
view.layer.borderColor = UIColor.lightGray.cgColor

其他回答

你需要使用视图层来设置边界属性。例句:

#import <QuartzCore/QuartzCore.h>
...
view.layer.borderColor = [UIColor redColor].CGColor;
view.layer.borderWidth = 3.0f;

你还需要链接到QuartzCore.framework来访问这个功能。

试试下面的代码:

view.layer.borderColor =  [UIColor redColor].CGColor;
view.layer.borderWidth= 2.0;
[view setClipsToBounds:YES];
view.layer.borderWidth = 1.0
view.layer.borderColor = UIColor.lightGray.cgColor

swift 4.2中项目的边框颜色:

let cell = tableView.dequeueReusableCell(withIdentifier: "Cell_lastOrderId") as! Cell_lastOrder
cell.layer.borderWidth = 1
cell.layer.borderColor = UIColor.white.cgColor
cell.layer.cornerRadius = 10

Xcode 6更新

由于Xcode的最新版本有一个更好的解决方案:

使用@IBInspectable,你可以直接在属性检查器中设置属性。

这将为您设置用户定义的运行时属性:

有两种方法可以设置:

选项1(在Storyboard中进行实时更新)

创建MyCustomView。 这继承自UIView。 设置@IBDesignable(这使得视图更新实时) 用@IBInspectable设置你的运行时属性(边框等) 将您的视图类更改为MyCustomView 在属性面板中编辑,并在故事板中查看更改:)

`

@IBDesignable
class MyCustomView: UIView {
    @IBInspectable var cornerRadius: CGFloat = 0 {
        didSet {
            layer.cornerRadius = cornerRadius
            layer.masksToBounds = cornerRadius > 0
        }
    }
    @IBInspectable var borderWidth: CGFloat = 0 {
        didSet {
            layer.borderWidth = borderWidth
        }
    }
    @IBInspectable var borderColor: UIColor? {
        didSet {
            layer.borderColor = borderColor?.CGColor
        }
    }
}

* @IBDesignable仅在MyCustomView类开始时设置有效

选项2(从Swift 1.2开始就不工作了,见评论)

扩展你的UIView类:

extension UIView {
    @IBInspectable var cornerRadius: CGFloat = 0 {
        didSet {
            layer.cornerRadius = cornerRadius
            layer.masksToBounds = cornerRadius > 0
        }
    }
    @IBInspectable var borderWidth: CGFloat = 0 {
        didSet {
            layer.borderWidth = borderWidth
        }
    }
    @IBInspectable var borderColor: UIColor? {
        didSet {
            layer.borderColor = borderColor?.CGColor
        }
    }
}

这样,您的默认视图总是在属性检查器中有那些额外的可编辑字段。另一个优点是您不必每次都将类更改为MycustomView。 然而,这样做的一个缺点是,你只能在运行应用程序时看到你的更改。