Jak zmienić fadeDuration iphone CATiledLayer?
Pracuję na aplikacji iPhone, która wyświetla kafelkowe mapy. Obecnie używam warstwy CATiledLayer w UIScrollView:
MyTiledDelegate *delegate=[[MyTiledDelegate alloc] initWithMapLayer:map];
tileLayer = [CATiledLayer layer];
tileLayer.delegate = delegate;
[scrollView.layer addSublayer:tileLayer];
[tileLayer setNeedsDisplay];
Napisałem i ustawiłem własnego delegata, który implementuje metodę rysowania warstwy w taki sposób:
- (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
Jestem zirytowany domyślnym zachowaniem warstwy CAtiledLayer na fadein po narysowaniu kafelka. Czasami fadein nie jest kompletny (zatrzymuje się przy kryciu 90 lub 95%).
Jak mogę zmienić lub (najlepiej) usunąć animację fadein?
Grałem zspeed
iduration
właściwości mojej instancji CATiledLayer, bezskutecznie. Nie ustawiam żadnej animacji na kafelkowej warstwie.[tiledLayer removeAllAnimation]
nic też nie zmienia.
Dzięki za wszelkie wskazówki.