[ios] 프로그래밍 방식으로 UIView의 사용자 정의 테두리 색상을 설정하는 방법은 무엇입니까?

Swift에서 프로그래밍 방식으로 UIView의 사용자 정의 테두리 색상을 설정하려고합니다.



답변

Swift 2.0 이상을 사용하는 경우

self.yourView.layer.borderWidth = 1
self.yourView.layer.borderColor = UIColor(red:222/255, green:225/255, blue:227/255, alpha: 1).cgColor


답변

Swift 4 에서는 아래 코드를 사용하여 테두리 색상과 너비를 UIControls로 설정할 수 있습니다.

let yourColor : UIColor = UIColor( red: 0.7, green: 0.3, blue:0.1, alpha: 1.0 )
yourControl.layer.masksToBounds = true
yourControl.layer.borderColor = yourColor.CGColor
yourControl.layer.borderWidth = 1.0

<Swift 4 , 아래 코드를 사용하여 UIView의 테두리 너비와 테두리 색상을 설정할 수 있습니다.

yourView.layer.borderWidth = 1

yourView.layer.borderColor = UIColor.red.cgColor


답변

@IBDesignable@IBInspectable 을 사용 하여 동일하게 수행하십시오.

재사용이 가능하고 Interface Builder에서 쉽게 수정할 수 있으며 변경 사항은 Storyboard에 즉시 반영됩니다.

스토리 보드의 개체를 특정 클래스에 맞추기

코드 스 니펫 :

@IBDesignable
class CustomView: UIView{

@IBInspectable var borderWidth: CGFloat = 0.0{

    didSet{

        self.layer.borderWidth = borderWidth
    }
}


@IBInspectable var borderColor: UIColor = UIColor.clear {

    didSet {

        self.layer.borderColor = borderColor.cgColor
    }
}

override func prepareForInterfaceBuilder() {

    super.prepareForInterfaceBuilder()
}

}

Interface Builder에서 쉽게 수정할 수 있습니다.

인터페이스 빌더


답변

예를 들어 모든 UIView와 함께 사용하도록 확장을 작성할 수 있습니다. UIButton, UILabel, UIImageView 등 귀하의 요구 사항에 따라 다음 방법을 사용자 지정할 수 있지만 잘 작동 할 것이라고 생각합니다.

extension UIView{

    func setBorder(radius:CGFloat, color:UIColor = UIColor.clearColor()) -> UIView{
        var roundView:UIView = self
        roundView.layer.cornerRadius = CGFloat(radius)
        roundView.layer.borderWidth = 1
        roundView.layer.borderColor = color.CGColor
        roundView.clipsToBounds = true
        return roundView
    }
}

용법:

btnLogin.setBorder(7, color: UIColor.lightGrayColor())
imgViewUserPick.setBorder(10)


답변

스위프트 3

func borderColor(){

    self.viewMenuItems.layer.cornerRadius = 13
    self.viewMenuItems.layer.borderWidth = 1
    self.viewMenuItems.layer.borderColor = UIColor.white.cgColor
}


답변

Swift 5.2 , UIView + Extension

extension UIView {
    public func addViewBorder(borderColor:CGColor,borderWith:CGFloat,borderCornerRadius:CGFloat){
        self.layer.borderWidth = borderWith
        self.layer.borderColor = borderColor
        self.layer.cornerRadius = borderCornerRadius

    }
}

이 확장을 사용했습니다.

yourView.addViewBorder(borderColor: #colorLiteral(red: 0.6, green: 0.6, blue: 0.6, alpha: 1), borderWith: 1.0, borderCornerRadius: 20)


답변

코드를 작성하십시오. viewDidLoad()

self.view.layer.borderColor = anyColor().CGColor

그리고 당신은 설정할 수 있습니다 ColorRGB

func anyColor() -> UIColor {
    return UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0)
}

에 대해 뭔가 알아 CALayer인을UIKit