poner para logos logo gratis fotos emojis descargar copiar app iphone ios ipad uiview

logos - Cómo dibujar una UIView personalizada que es solo un círculo: aplicación para iPhone



emojis ios 10 para android descargar (8)

¿Podría simplemente anular el método drawRect?

Sí:

- (void)drawRect:(CGRect)rect { CGContextRef ctx = UIGraphicsGetCurrentContext(); CGContextAddEllipseInRect(ctx, rect); CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor blueColor] CGColor])); CGContextFillPath(ctx); }

Además, ¿estaría bien cambiar el marco de esa vista dentro de la clase misma?

Idealmente no, pero podrías.

¿O necesito cambiar el marco de una clase diferente?

Dejaría que el padre lo controle.

¿Cómo voy a dibujar una UIView personalizada que es literalmente solo una pelota (un círculo 2D)? ¿Podría simplemente anular el método drawRect? ¿Y alguien puede mostrarme el código para dibujar un círculo azul?

Además, ¿estaría bien cambiar el marco de esa vista dentro de la clase misma? ¿O necesito cambiar el marco de una clase diferente?

(solo tratando de configurar una pelota que rebota)


Aquí hay otra forma de usar UIBezierPath (tal vez sea demasiado tarde ^^) Cree un círculo y enmascare UIView con él, de la siguiente manera:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; view.backgroundColor = [UIColor blueColor]; CAShapeLayer *shape = [CAShapeLayer layer]; UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:view.center radius:(view.bounds.size.width / 2) startAngle:0 endAngle:(2 * M_PI) clockwise:YES]; shape.path = path.CGPath; view.layer.mask = shape;


Mi contribución con una extensión rápida:

extension UIView{ func asCircle(){ self.layer.cornerRadius = self.frame.width / 2; self.layer.masksToBounds = true } }

Simplemente llame a myView.asCircle()


Podría usar QuartzCore y hacer algo así:

self.circleView = [[UIView alloc] initWithFrame:CGRectMake(10,20,100,100)]; self.circleView.alpha = 0.5; self.circleView.layer.cornerRadius = 50; // half the width/height self.circleView.backgroundColor = [UIColor blueColor];


Swift 3 - xCode 8.1

@IBOutlet weak var myView: UIView! override func viewDidLoad() { super.viewDidLoad() let size:CGFloat = 35.0 myView.bounds = CGRect(x: 0, y: 0, width: size, height: size) myView.layer.cornerRadius = size / 2 myView.layer.borderWidth = 1 myView.layer.borderColor = UIColor.Gray.cgColor }


Otra forma de acercarse al dibujo del círculo (y otras formas) es mediante el uso de máscaras. Dibuja círculos u otras formas, primero, haciendo máscaras de las formas que necesita, segundo, proporcione cuadrados de su color y, en tercer lugar, aplique máscaras a esos cuadrados de color. Puede cambiar la máscara o el color para obtener un nuevo círculo personalizado u otra forma. Arriba está el resultado del código a continuación.

#import <QuartzCore/QuartzCore.h> @interface ViewController () @property (weak, nonatomic) IBOutlet UIView *area1; @property (weak, nonatomic) IBOutlet UIView *area2; @property (weak, nonatomic) IBOutlet UIView *area3; @property (weak, nonatomic) IBOutlet UIView *area4; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.area1.backgroundColor = [UIColor blueColor]; [self useMaskFor: self.area1]; self.area2.backgroundColor = [UIColor orangeColor]; [self useMaskFor: self.area2]; self.area3.backgroundColor = [UIColor colorWithRed: 1.0 green: 0.0 blue: 0.5 alpha:1.0]; [self useMaskFor: self.area3]; self.area4.backgroundColor = [UIColor colorWithRed: 1.0 green: 0.0 blue: 0.5 alpha:0.5]; [self useMaskFor: self.area4]; } -(void) useMaskFor: (UIView*)colorArea { CALayer *maskLayer = [CALayer layer]; maskLayer.frame = colorArea.bounds; UIImage *maskImage = [UIImage imageNamed:@"cirMask.png"]; maskLayer.contents = (__bridge id)maskImage.CGImage; colorArea.layer.mask = maskLayer; } @end


Swift 3 - clase personalizada, fácil de reutilizar. Utiliza backgroundColor establecido en el constructor de UI

import UIKit @IBDesignable class CircleBackgroundView: UIView { override func layoutSubviews() { super.layoutSubviews() layer.cornerRadius = bounds.size.width / 2 layer.masksToBounds = true } }


Swift 3 clase:

import UIKit class CircleView: UIView { override func draw(_ rect: CGRect) { guard let context = UIGraphicsGetCurrentContext() else {return} context.addEllipse(in: rect) context.setFillColor(.blue.cgColor) context.fillPath() } }