Questa è proprio la parodia dell'iPhone. Sto lavorando su una libreria, ma ho ristretto il mio problema a un codice molto semplice. Ciò che questo codice fa è creare una vista 50 x 50, applica una trasformazione di rotazione di alcuni gradi, quindi sposta il riquadro verso il basso alcune volte. Il risultato è che la vista 50x50 ora è molto più grande.Ruota usando una trasformazione, quindi cambia l'origine della trama e la vista si espande?
Ecco il codice:
// a simple 50x50 view
UIView *redThing = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 50, 50)];
redThing.backgroundColor = [UIColor redColor];
[self.view addSubview:redThing];
// rotate a small amount (as long as it's not 90 or 180, etc.)
redThing.transform = CGAffineTransformRotate(redThing.transform, 0.1234);
// move the view down 2 pixels
CGRect newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height);
redThing.frame = newFrame;
// move the view down another 2 pixels
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height);
redThing.frame = newFrame;
// move the view down another 2 pixels
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height);
redThing.frame = newFrame;
// move the view down another 2 pixels
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height);
redThing.frame = newFrame;
Quindi, cosa diavolo sta succedendo? Ora, se sposto la vista applicando una trasformazione di traduzione, funziona perfettamente. Ma questo non è quello che voglio fare e questo dovrebbe funzionare ugualmente.
Qualche idea?
Forse la trasformazione viene applicata dopo i turni? – Artelius