Ich bekomme das visibleRect von einer UIImageView innerhalb einer Methode, die mehrmals aufgerufen wird, um diese Ansicht nach rechts zu verschieben. Sobald es teilweise aus dem Bildschirm geht, erwarte ich, dass der visibleRect kleiner wird. Aber das tut es nicht.Warum gibt mir die visibleRect-Methode von CALayer immer die gleiche Breite für meine UIImageView, auch wenn ich sie halb aus dem Bildschirm ziehe?
-(IBAction)moveToRight:(id)sender {
CGRect frameRect = myUIImageView.frame; //that's an image I use in background of other views
CALayer *myLayer = [myUIImageView layer];
CGRect visRect = [myLayer visibleRect];
NSLog(@"%f, %f", visRect.origin.x, visRect.size.width); //width is always 300.0
CGPoint rectPoint = frameRect.origin;
CGFloat newXPos = rectPoint.x + 10.5f;
myUIImageView.frame = CGRectMake(newXPos, 0.0f, myUIImageView.frame.size.width, myUIImageView.frame.size.height);
}
Gibt es etwas Besonderes, über das ich nachdenken muss, wenn ich das wirklich sichtbare Rectangle einer Ansicht brauche? Eigentlich dachte ich, dass es immer von der Superansicht abgeschnitten wird, so dass die Methode die wahren sichtbaren Rechteckdimensionen zurückgibt.
Aber wie ich das UIImageView Schritt für Schritt nach rechts verschiebe, bleibt es bei 300,0 Breite. Auch wenn ein Teil davon aus dem Fenster verschwindet.
Danke. Ich frage mich, warum Apple es nicht sofort erwähnt hat, wo sie sagen, dass diese coole Methode so nützlich ist;) – Thanks
Ich habe denselben Gedanken über jeden Tag mit Apfel;) – Alex