import UIKit
extension UIView {
/// [UIView+] 自身のSubViewを全て取り除く
func e_removeAllSubviews() {
for subview in self.subviews {
subview.removeFromSuperview()
}
}
}
extension UIView {
/* UIViewのスクリーンショットを取る */
func snapshot() -> UIImage {
UIGraphicsBeginImageContextWithOptions(bounds.size, true, 0.0)
let context = UIGraphicsGetCurrentContext()!
context.setShouldAntialias(false)
layer.render(in: context)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
let png = image.pngData()!
let pngImage = UIImage.init(data: png)!
return pngImage
}
}
★ サイズにアクセスしやすくする
extension UIView {
var x: CGFloat {
get { return frame.origin.x }
set (x){ self.frame.origin.x = x }
}
var y: CGFloat {
get { return frame.origin.y }
set (y){ self.frame.origin.y = y }
}
var width: CGFloat {
get { return frame.size.width }
set(width) { self.frame.size.width = width }
}
var height: CGFloat {
get { return frame.size.height }
set(height) { self.frame.size.height = height }
}
}
★ 角丸、枠線設定
extension UIView {
func setBorderLayer(width: CGFloat = 1.0, radius: CGFloat = 0, boarderColor: UIColor = UIColor.clear) {
self.layer.borderWidth = width
self.layer.cornerRadius = radius
self.layer.borderColor = boarderColor.cgColor
self.layer.masksToBounds = true
}
}
★ @IBInspectable
で枠線、枠線の太さ等を設定する
extension UIView {
// borderColor
@IBInspectable var borderColor: UIColor? {
get { return layer.borderColor.map{ UIColor(cgColor: $0) } }
set (color){ layer.borderColor = color?.cgColor }
}
// borderwidth
@IBInspectable var borderwidth: CGFloat {
get { return layer.borderWidth }
set(borderWidth) { layer.borderWidth = borderWidth }
}
// cornerRadius
@IBInspectable var cornerRadius: CGFloat {
get { return layer.cornerRadius }
set(cornerRadius) { layer.cornerRadius = cornerRadius}
}
// masksToBounds
@IBInspectable var masksToBounds: Bool {
get { return layer.masksToBounds }
set (masksToBounds) { layer.masksToBounds = masksToBounds}
}
}