pro precio pencil para mejor ilustrar gratis dibujar cual apps apple aplicacion ios uiview uikit calayer

precio - En iOS, drawRect no puede dibujar fuera de los límites de la vista?



ipad pro para dibujar (2)

Pensé desde algún punto para OS X, y siempre es cierto para iOS, que el contenido puede aparecer fuera de los límites de la vista. (para UIView) Pero si creo una nueva aplicación Vista única, y creé una clase MyView que subclasifica UIView, e implemento su drawRect:

- (void)drawRect:(CGRect)rect { // Drawing code UIBezierPath *path = [UIBezierPath bezierPathWithRect: CGRectMake(-20, -20, 600, 600)]; [[UIColor greenColor] set]; [path fill]; CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [[UIColor blueColor] CGColor]); CGContextFillRect(context, CGRectMake(-20, -20, 600, 600)); }

Uso tanto UI como CG para dibujar un rectángulo cada uno, por si uno funciona y el otro no. Y la vista se agrega en viewDidAppear :

- (void)viewDidAppear:(BOOL)animated { MyView *myView = [[MyView alloc] initWithFrame:CGRectMake(20, 20, 260, 260)]; [self.view addSubview:myView]; }

Pero pase lo que pase, la caja de color no irá más allá de la región (20, 20, 260, 260) . ¿Es cierto que solo los CALayers pueden agregarse libremente y aparecer fuera de los límites de una vista? ¿Puede ser debido a que el contexto de los gráficos está limitado a esto (20, 20, 260, 260) para empezar? Si es así, ¿hay alguna forma de que el contenido de drawRect aparezca fuera del límite de la vista, en las cuatro direcciones arriba, abajo, izquierda, derecha?


Pruebe esto en una vista, donde ha agregado scrollView:

self.scrollView.backgroundColor = [UIColor darkGrayColor]; self.scrollView.layer.cornerRadius = 10.0f; self.scrollView.layer.masksToBounds = YES;

Debería mostrar una vista de desplazamiento gris con esquinas redondeadas, como desee.

Recuerda que necesitas importar QuartzCore FrameWork


Su problema es que "drawRect" se recorta automáticamente en la vista que está dibujando.

En lugar de hacer el dibujo en la vista en sí, agregue una segunda (sub) vista a la primera vista, que está fuera de los límites de la primera vista. Esto le permitirá hacer un dibujo que depende de la ubicación de la primera vista, pero está fuera de los límites de la primera vista.

Espero que esto ayude.