Estoy trabajando en una aplicación de iPhone que muestra mapas en mosaico. Actualmente estoy usando un CATiledLayer en un UIScrollView:Cómo cambiar iphone CATiledLayer fadeDuration?
MyTiledDelegate *delegate=[[MyTiledDelegate alloc] initWithMapLayer:map];
tileLayer = [CATiledLayer layer];
tileLayer.delegate = delegate;
[scrollView.layer addSublayer:tileLayer];
[tileLayer setNeedsDisplay];
que escribí y puse mi propio delegado que implementa el método de capa de drenaje, así:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx{
CGRect rect =CGContextGetClipBoundingBox(ctx);
CGFloat x = fabs(round(rect.origin.x/tileSize));
CGFloat y = fabs(round(rect.origin.y/tileSize));
Tile *tile = [map getTileForMapZoom:z x:x y:y];
CGImageRef img=[tile getRealImage];
CGContextDrawImage(
ctx,
CGRectMake(tile.x*tileSize,tile.y*tileSize, tileSize,tileSize) ,
img);
}//edited for brevity
estoy molesto por el comportamiento por defecto de la CAtiledLayer para desvanecerse después de que se dibuja la ficha. Además, a veces el fadein no está completo (se detiene a 90 o 95% de opacidad).
¿Cómo puedo cambiar o (preferiblemente) eliminar la animación de fadein?
He jugado con las propiedades speed
y duration
de mi instancia CATiledLayer, pero no he tenido éxito. No configuro ninguna animación en TiledLayer. el [tiledLayer removeAllAnimation]
no cambia nada tampoco.
Gracias por cualquier apuntador.
la duración del fundido se establece por defecto en 0.25 si no se establece ninguna duración o si se establece en un número negativo. no parece haber de todos modos que pueda encontrar * no * desvanecerse. – catsby
Hola a todos. Gracias por sus respuestas. Ellos arreglan el problema. Pensé en sobrescribir en una subclase, pero esperaba que hubiera una manera más elegante que no implique crear otra clase. Supongo que haré que la subclase delegada CATiledLayer sea CATiledLAyer. Gracias de nuevo. –
hola nico_h puede decirme cómo solucionó su problema. también estoy enfrentando el mismo problema. ¿Cómo lo lograste sin usar la subclase? – CKT