【问题标题】:How can I achieve this rounded View in Swift如何在 Swift 中实现这种圆形视图
【发布时间】:2020-11-18 06:38:24
【问题描述】:

如何实现这个白色圆形视图的外观,显示所有信息?
我在考虑一个圆形的白色UIImageView,但底部也将是圆形的......

【问题讨论】:

  • 存档? (也许你的意思是“实现”?)
  • 所以您只希望顶部是圆角吗?如果这是您想要的,请查看如何使用 Bezier 路径:appcoda.com/rounded-corners-uiview 注意我知道您想要实现,也不想存档。
  • @claude31 是的,谢谢你,这正是我正在寻找的!

标签: ios swift layout


【解决方案1】:

根据 claude31 提供的链接,您可以执行以下操作:

    private let containerView: UIView = {
        let view = UIView()
        view.translatesAutoresizingMaskIntoConstraints = false
        
        view.clipsToBounds = true
        view.layer.cornerRadius = 28
        view.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner]//Define the corners you want to round here.
        
        view.backgroundColor = .systemBlue
        return view
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        configureUI()
    }
    
    private func configureUI() {
        view.addSubview(containerView)
        
        NSLayoutConstraint.activate([
            containerView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
            containerView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            containerView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            containerView.topAnchor.constraint(equalTo: view.topAnchor, constant: 270)
        ])
    }

结果如下所示:

【讨论】:

    【解决方案2】:

    如果您使用故事板,请添加:

    @IBDesignable 开放类 ShadowView: UIView {

     func setupValues(){
        self.layer.cornerRadius = self.cornerRadius
        self.layer.shadowColor = self.shadowColor.cgColor
        self.layer.shadowOffset = self.shadowOffset
        self.layer.shadowRadius = self.shadowRadius
        self.layer.shadowOpacity = self.shadowOpacity
        self.layer.borderWidth = self.borderWidth
        self.layer.borderColor = self.borderColor.cgColor
        
    }
    
    open override func prepareForInterfaceBuilder() {
        self.setupValues()
        
    }
    
    open override func awakeFromNib() {
        self.setupValues()
    }
    
    @IBInspectable var cornerRadius: CGFloat = 10
    @IBInspectable public var borderWidth: CGFloat = 0.0
    @IBInspectable public var borderColor: UIColor = UIColor.color(red: 0, green: 0, blue: 0, alpha: 1.0){
        didSet {
            self.setupValues()
        }
    }
    @IBInspectable public var shadowColor: UIColor = UIColor.color(red: 0, green: 0, blue: 0, alpha: 1.0) {
        didSet {
            self.setupValues()
        }
    }
    @IBInspectable public var shadowOffset: CGSize = CGSize(width: 0, height: 4)
    @IBInspectable public var shadowRadius: CGFloat = 20.0
    @IBInspectable public var shadowOpacity: Float = 0.1
    

    }

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      相关资源
      最近更新 更多