folgende WWDC2010 Sitzung 104 Ich habe gerade eine CATiledLayer innerhalb einer UIScrollView
für ein 10000 x 8078 px Bild erstellt.CATiledLayer bekommt einen falschen Rahmen & KontextCTM.a Wert (ZoomScale)
Ich bin beunruhigt mit dem Rahmen & zoomScale
, wenn die Ansicht zeigt zunächst an seiner oberen Ebene ist
- wie in der Sitzung 104 I definiert
levelsOfDetail
als 4 - in meinem drawRect nenne ich
CGFloat lScale = CGContextGetCTM(lContext).a;
Merkwürdig zur Laufzeit lScale ist 0,124907158, nicht 0,125 wie erwartet zugeordnet.
Neben der rect
zu drawRect
passiert hat floatpoint Werte wie
- rect.origin.x = 4099,04443
- rect.origin.y = 6144
- rect.size.width = 2049,52222
- rect.size.height = 2048
für mich die meisten irritierend ist, dass der Rahmen des 012.393.zeigt einen Ursprung 0 x 26.93, obwohl ich das tiledImageView mit initWithFrame
unter Verwendung eines 0x0-Ursprungs erstellte.
Irgendwelche Ideen, wo ich die Berechnung finden kann, die dafür verantwortlich ist?
EDIT: I die Quelle für die wierd Rahmenposition gefunden wird, die die Scroll Grenzen falsch bei 450 Pixel eingestellt wird, ist. das sollte 420 px sein. Die Routine layoutSubview in UIScrollView verfügt über eine Routine für die zentrale Ansicht, die versehentlich die y-Koordinate angepasst hat.
Sie haben gerade das Problem behoben, mit dem ich seit Stunden zu kämpfen habe. :-) Ich hatte einen CATiledLayer, der perfekt funktionierte, aber als ich versuchte, seine Position (Frame) zu ändern, änderten sich die Skalenwerte plötzlich von zB. 0,5 bis 0,49756. Ich habe deine Lösung ausprobiert und die Breite und Höhe des CATiledLayers abgerundet und jetzt funktioniert es! Danke, dass du die Lösung, die du gefunden hast, geteilt hast. :-) –
Okay gut, es hat das Problem behoben, aber es hat ein anderes eingeführt. Wenn Sie gut in UIScrollView zoomen, sehen Sie, dass die Größe der CATiledLayer in Relation zur UIScrollView falsch ist. Sie können es sehen, weil die rechte und untere Kante schwarz wird, da die CATiledLayer die UIScrollView nicht vollständig ausfüllt und Sie dann die Hintergrundfarbe von UIScrollView sehen können. Das könnte in einigen Fällen in Ordnung sein, aber leider nicht in meinem. Ich muss etwas anderes versuchen, vielleicht die Skala selbst runden. –