¿Alguien puede ayudarme aquí? Nuevo como desarrollador de iPhone. Estoy tratando de mostrar una imagen .png en un círculo en lugar de un rectángulo que es el estándar para iPhoneUIImage en un círculo
Respuesta
Use un UIImageView y configure la esquinaRadius para que tenga la mitad de alto y ancho. view.layer.cornerRadius = cornerRadius;
Bueno, todos los archivos PNG son rectángulos '' pero si usted quiere tener la apperence de un círculo u otro objeto no rectángulo en la pantalla, puede hacerlo mediante el uso de transparacy. Para asegurarse de que los píxeles transparentes de la imagen también sean transparentes en el iPhone, puede configurar el color de fondo del UIImageView para borrar. Esto se puede hacer en Interface Builder arrastrando el regulador de opacidad en el fondo selector de colores hasta el fondo, o en el código de la siguiente manera:
UIImage *image = [UIImage imageNamed:@"yourRoundImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.backgroundColor = [UIColor clearColor];
[self.view addSubview: imageView];
Si simplemente desea agregar esquinas redondeadas, para hacer un círculo, también se puede utilizar la propiedad CornerRadius como éste si ha añadido el marco QuartzCore a su proyecto:
#import <QuartzCore/QuartzCore.h>
UIImage *image = [UIImage imageNamed:@"yourRoundImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.layer.cornerRadius = image.size.width/2;
imageView.layer.masksToBounds = YES;
[self.view addSubview: imageView];
tratar este código
yourImageView.layer.cornerRadius = yourImageView.frame.size.height /2;
yourImageView.layer.masksToBounds = YES;
yourImageView.layer.borderWidth = 0;
esta imagen de la demostración como ios 7 imagen de círculo gracias
intenté esto funciona bien gracias @waseem – iOSDevp
imagen gracias;) – animaonline
perfecto! Gracias – malhal
Cambiar la esquinaRadio de la vista de la imagen funciona bien si solo tiene un par de imágenes en su vista. Sin embargo, si la vista de la imagen está en una vista de tabla, el rendimiento se verá afectado.
Algunas de las otras opciones:
- que el círculo elementos de imagen en el servidor o manualmente si se encuentran agrupados en la aplicación, con partes transparentes de la región exterior del círculo.
- Si el fondo de la vista de la imagen no cambia, cree una imagen de superposición que tenga la parte del círculo interno transparente, y el resto sea el mismo que el fondo. Establezca también backgroundColor de la vista de imagen para borrar Color.
- Al recibir las imágenes, edítelas en código para que sean un círculo, en una cadena de fondo.
Pruebe esto para conseguir esquinas redondeadas de la imagen de visión y también para colorear las esquinas:
self.imgView.layer.cornerRadius =self.imgView.frame.size.height/2;
self.imgView.layer.masksToBounds = YES;
self.imgView.layer.borderColor = [UIColor colorWithRed:148/255. green:79/255. blue:216/255. alpha:1.0].CGColor;
self.imgView.layer.borderWidth=2;
Condición *: La altura y la anchura de la imageView debe ser el mismo para obtener las esquinas redondeadas.
Mi contribución con una extensión rápida utiliza para configurar una UIImageView como círculo
extension UIImageView{
func asCircle(){
self.layer.cornerRadius = self.frame.width/2;
self.layer.masksToBounds = true
}
}
Sólo tiene que llamar MyImageView.asCircle()
Sí, he implementado la misma solución exacta en mi código, excepto que he hecho una extensión de UIView, ya que puedo llamar al mismo método incluso para otros objetos (como botones ...). – Andrej
Voy a añadir una extensión de poco más universal a UIImageView
que trabajará con imágenes no cuadrados . Tenga en cuenta que funcionará más lento que el método cornerRadius
.
extension UIImageView {
@IBInspectable public var asEllipse:Bool {
get {
if let mask = self.layer.mask {
return mask.name == kMaskLayerName
}
return false;
}
set {
if (newValue) {
let ellipseMask = CAShapeLayer()
ellipseMask.name = kMaskLayerName
ellipseMask.path = CGPathCreateWithEllipseInRect(self.bounds, nil)
ellipseMask.strokeColor = UIColor.clearColor().CGColor
ellipseMask.fillColor = UIColor.whiteColor().CGColor
self.layer.mask = ellipseMask
} else if self.asEllipse {
self.layer.mask = nil
}
}
}
}
private let kMaskLayerName="EllipseMaskLayer"
¿Por qué es esto más lento que 'cornerRadius'? –
Supongo que son las asignaciones de objetos las que lo ralentizan: una instancia de 'CAShapeLayer', una de' CGPath' y dos de 'UIColor'. A pesar de haber probado que para las imágenes de celda en un 'tableView' en un iPhone 5 en adelante no hay una desaceleración notable cuando se desplaza. TBH No he realizado una investigación de optimización adecuada en Instruments. – user3099609
Swift 4: Esto debería mostrar su .png en un círculo.
- Arrastre (ctrl + clic) un
IBOutlet
de una imagen hacia su código.
CornerRadius El radio de usar en la elaboración de las esquinas redondeadas para el fondo de la capa. Animable. https://developer.apple.com/documentation/quartzcore/calayer/1410818-cornerradius
propiedad clipsToBounds Valor booleano que determina si las subvistas están confinadas a los límites de la vista. https://developer.apple.com/documentation/uikit/uiview/1622415-clipstobounds
2.Inside viewDidLoad(), Use la propiedad de instancia layer.cornerRadius
y clipsToBounds
.
profileImage.layer.cornerRadius = 50
profileImage.clipsToBounds = true
- 1. Llenar un UIBezierPath con un UIImage
- 2. ¿Cómo recortar UIImage en forma oval o en forma de círculo?
- 3. iPhone SDK - ¿Cómo dibujar un UIImage en otro UIImage?
- 4. Recortar un UIImage en iPhone
- 5. dibujar un círculo lleno
- 6. Cómo crear un círculo con un agujero en un círculo en WPF?
- 7. ¿Cómo desaturo un UIImage?
- 8. enmascarando un UIImage
- 9. ¿Cómo guardo un UIImage en un archivo?
- 10. Renderizar un CGPDFPage en un UIImage
- 11. Encontrar si un círculo está dentro de otro círculo
- 12. Creando un UIImage de otro UIImage usando imageWithData devuelve nil
- 13. ¿Cómo dibujar un círculo transparente?
- 14. Dibuje un círculo con ggplot2
- 15. Dibuja parte de un círculo
- 16. centrar una imagen en un círculo css
- 17. Cómo dibujar un círculo concéntrico en iphone?
- 18. Cómo hacer un círculo en una cuadrícula?
- 19. Dibuja un círculo hueco en SVG
- 20. Embalaje máximo de rectángulos en un círculo
- 21. Cómo dibujar un círculo lleno en Java?
- 22. ¿Busca un punto tangente en el círculo?
- 23. trazar un círculo con pyplot
- 24. Dibujar círculo en Android
- 25. matlab: poner un número en un círculo en un gráfico
- 26. Recortar UIImage como un camscanner
- 27. IOS: establecer alfa en un UIImage
- 28. Dibuje otra imagen en un UIImage
- 29. Guardar y recuperar un UIImage en CoreData
- 30. ¿Es posible animar un UIImage?
http://stackoverflow.com/a/21329347/501487 – aToz
http://stackoverflow.com/questions/7399343/making-a-uiimage-to-a-circle-form/21954535#21954535 –