// // NCAvatar.swift // Nextcloud // // Created by Marino Faggiana on 16/11/2018. // Copyright (c) 2018 Marino Faggiana. All rights reserved. // // Author Marino Faggiana // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // import Foundation @IBDesignable class NCAvatar: UIImageView { @IBInspectable var roundness: CGFloat = 2 { didSet{ layoutSubviews() } } @IBInspectable var borderWidth: CGFloat = 5 { didSet{ layoutSubviews() } } @IBInspectable var borderColor: UIColor = UIColor.blue { didSet{ layoutSubviews() } } @IBInspectable var background: UIColor = UIColor.clear { didSet{ layoutSubviews() } } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } override init(frame: CGRect) { super.init(frame: frame) } override func layoutSubviews() { super.layoutSubviews() layer.cornerRadius = bounds.width / roundness layer.borderWidth = borderWidth layer.borderColor = borderColor.cgColor layer.backgroundColor = background.cgColor clipsToBounds = true let path = UIBezierPath(roundedRect: bounds.insetBy(dx: 0.5, dy: 0.5), cornerRadius: bounds.width / roundness) let mask = CAShapeLayer() mask.path = path.cgPath layer.mask = mask } }