Вы, вероятно, хотите просто применить радиус угла к layer
в UIImageView
, в котором вы представляете изображения, а не округление сами изображения, например,
imageView.layer.cornerRadius = 10
Но если вы действительно хотите, чтобы закруглить образы, сами, а не округление UIImageView
, в котором вы представить изображения, вы можете также создать новый массив округлых изображений из вашего holeImages
массива:
let roundedHoleImages = holeImages.map { return $0?.rounded(cornerRadius: 10) }
Где можно округлить изображения что-то вроде:
extension UIImage {
/// Round the corners of an image
///
/// - parameter cornerRadius: The `CGFloat` corner radius to apply to the images.
///
/// - returns: The rounded image.
func rounded(cornerRadius cornerRadius: CGFloat) -> UIImage? {
let path = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: size.width, height: size.height), cornerRadius: cornerRadius)
UIGraphicsBeginImageContextWithOptions(size, false, scale)
let context = UIGraphicsGetCurrentContext()
CGContextAddPath(context, path.CGPath)
CGContextClip(context)
drawAtPoint(CGPointZero)
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return outputImage
}
}
вы можете использовать это округление фактических изображений, если вы, например, загрузили изображения в некоторые веб-службы, и вы хотели загружать изображения с закругленными углами. Но, если нет, округление представлений изображений не только проще, но и избегает проблем, возникающих в результате изображений разных масштабов (особенно если эти масштабы отличаются от дисплея scale
), а также минимизирует влияние памяти на создание отдельного массива изображений.
http://stackoverflow.com/a/29047372/2303865 –