繁体   English   中英

UIView圆角 - 斯威夫特2.0?

[英]UIView rounded Corner - Swift 2.0?

我试着将一些项目更新为Swift 2.0。 我有一个View,左上角有一个圆角。 在Swift <1.2中一切正常,但现在,再也没有圆角了。

没有警告,没有错误,没有圆角。

这是它在Swift <1.2中的工作原理。

    let maskPath = UIBezierPath(roundedRect: contentView.bounds,byRoundingCorners: .TopLeft, cornerRadii: CGSize(width: 10.0, height: 10.0))
    let maskLayer = CAShapeLayer(layer: maskPath)
    maskLayer.frame = contentView.bounds
    maskLayer.path = maskPath.CGPath
    contentView.layer.mask = maskLayer

有人知道这里有什么不对吗? 我没有在文档中找到任何更改。

Swift 2.0-2.1中的这段代码没有任何问题。 您确定此代码段之前或之后没有其他内容,这会影响您的观点吗?

这是一个快速的游乐场,包含您的代码:

在此输入图像描述

Swift 4.0 - 5.0

您可以使用我创建的简单类来创建UIView并直接从Storyboard添加圆角

你可以在这里找到这门课程

import Foundation
import UIKit

@IBDesignable class SwiftRoundView: UIView {

    @IBInspectable fileprivate var borderColor: UIColor = .white { didSet { self.layer.borderColor = self.borderColor.cgColor } }
    @IBInspectable fileprivate var borderWidth: CGFloat = 0.00 { didSet { self.layer.borderWidth = self.borderWidth } }
    @IBInspectable fileprivate var cornerRadius: CGFloat = 0.00 { didSet { self.layer.cornerRadius = self.cornerRadius } }

    init(x: CGFloat = 0.0, y: CGFloat = 0.0, width: CGFloat, height: CGFloat, cornerRadius: CGFloat = 0.0, borderWidth: CGFloat = 0.0, borderColor: UIColor = .white) {
        self.cornerRadius = cornerRadius
        self.borderWidth = borderWidth
        self.borderColor = borderColor

        super.init(frame: CGRect(x: x, y: y, width: width, height: height))

        setupView()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        setupView()
    }

    required init?(coder aDecoder: NSCoder) {
         super.init(coder: aDecoder)
         setupView()
    }

    fileprivate func setupView() {
        self.layer.cornerRadius = cornerRadius
        self.layer.borderWidth = borderWidth
        self.layer.borderColor = borderColor.cgColor
        self.clipsToBounds = true
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM