Referring to the comment above.
My code:
button.backgroundColor = UIColor.withAlphaComponent(UIColor.white)(0.1)
button.layer.cornerRadius = button.frame.size.height / 2
button.layer.borderWidth = 3
button.layer.borderColor = UIColor.white.cgColor
button.layer.contents = UIImage(named: "buttonImage.png")?.cgImage
button.layer.contentsGravity = kCAGravityCenter
button.layer.magnificationFilter = kCAFilterLinear
button.layer.isGeometryFlipped = false
Applying the solution:
let maskLayer = CALayer()
And finally:
layer.backgroundColor = UIColor.redColor().CGColor
The result is horrible.
The solution is on the link below (the link in the comment)
But I show my code (take it from link):
let image_ = UIImage(named: "image.png")
let maskImage = image_?.cgImage
let width = image_?.size.width
let height = image_?.size.height
let bounds = CGRect(x: 0, y: 0, width: width!, height: height!)
let colorSpace = CGColorSpaceCreateDeviceRGB()
let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue)
let bitmapContext = CGContext(data: nil,
width: Int(width!),
height: Int(height!),
bitsPerComponent: 8,
bytesPerRow: 0,
space: colorSpace,
bitmapInfo: bitmapInfo.rawValue)
bitmapContext?.clip(to: bounds, mask: maskImage!)
bitmapContext?.setFillColor(UIColor.yellow.cgColor)
bitmapContext?.fill(bounds)
let cImage = bitmapContext?.makeImage()
let coloredImage = UIImage(cgImage: cImage!)
self.myUIButton.layer.contents = coloredImage.cgImage
Please, let me tell you something (is important) Do not play with:
- image@2x.png
- or image@3x.png
The image name "someImage.png" must be exactly the file name in your project folder.