【问题标题】:UIView rounded Corner - Swift 2.0?UIView 圆角 - Swift 2.0?
【发布时间】:2016-01-21 01:20:10
【问题描述】:

我会尝试将一些项目更新到 Swift 2.0。我有一个视图,左上角有一个圆角。在 Swift

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

这就是它在 Swift

    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

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

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    这段代码在 Swift 2.0–2.1 中没有任何问题。您确定这段代码 sn-p 之前或之后没有其他东西影响您的视图吗?

    这是一个包含您的代码的快速 Playground:

    【讨论】:

    • 嗯,愚蠢的,再次与 Outlet 连接不正常,现在它可以工作了。很奇怪。之前检查过很多次。有时我会认为 7.0 Xcode Release 仍然有点问题 ;) 首先在操场上检查是个好主意!感谢您的回答!
    【解决方案2】:

    斯威夫特 4.0 - 5.0

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

    你可以找到班级here

    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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-21
      • 2018-03-24
      • 2021-05-04
      • 2010-12-03
      • 2018-01-05
      • 2013-05-15
      • 2011-01-24
      • 1970-01-01
      • 2021-03-16
      相关资源
      最近更新 更多