Sto lavorando a un'applicazione per iPhone che visualizza mappe affiancate. Attualmente sto usando un CATiledLayer in un UIScrollView:Come cambiare iphone CATiledLayer fadeDuration?
MyTiledDelegate *delegate=[[MyTiledDelegate alloc] initWithMapLayer:map];
tileLayer = [CATiledLayer layer];
tileLayer.delegate = delegate;
[scrollView.layer addSublayer:tileLayer];
[tileLayer setNeedsDisplay];
ho scritto e impostato il mio proprio delegato che implementa il metodo a strati draw in questo modo:
- (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
Io sono infastidito dal comportamento predefinito del CATiledLayer svanire dopo aver disegnato la tessera. Inoltre, a volte la fadein non è completa (si ferma a 90 o 95% di opacità).
Come posso modificare o (preferibilmente) rimuovere l'animazione di fadein?
Ho giocato con le proprietà speed
e duration
della mia istanza CATiledLayer, senza alcun risultato. Non ho impostato alcuna animazione su tiledLayer. lo [tiledLayer removeAllAnimation]
non cambia nulla neanche.
Grazie per eventuali suggerimenti.
la durata della dissolvenza è impostata su 0,25 se non è impostata alcuna durata o se è impostata su un numero negativo. non sembra che ci sia comunque che posso trovare * non * sbiadire. – catsby
Ciao a tutti. Grazie per le tue risposte. Risolvono il problema. Avevo pensato di scavalcare in una sottoclasse, ma speravo che esistesse un modo più elegante che non implicasse la creazione di un'altra classe. Immagino che farò delegare CATiledLayer alla sottoclasse CATiledLAyer. Grazie ancora. –
hi nico_h puoi dirmi come hai risolto il problema. Anch'io sto affrontando lo stesso problema. come hai ottenuto questo senza usare la sottoclasse? – CKT