Ответ 1
Вы устанавливаете центр обзора в верхнем правом углу. Это означает, что вы приближаетесь где-то к левому нижнему углу центра.
Попробуйте это
CGAffineTransform tr = CGAffineTransformScale(self.view.transform, 2, 2);
CGFloat h = self.view.frame.size.height;
[UIView animateWithDuration:2.5 delay:0 options:0 animations:^{
self.view.transform = tr;
self.view.center = CGPointMake(0,h);
} completion:^(BOOL finished) {}];
Это установит центр раздутого вида в левый нижний угол, эффективно увеличивая угол в верхнем правом углу.
В этом коде нет жесткой жесткости, которая немного более портативна (для iPad iPhone 5).
Вам нужно сначала сохранить h
перед установкой свойства transform
, потому что после этого вы не должны полагаться на значение frame
.
изменить
Чтобы он работал для любого масштаба s
, используйте это:
CGFloat s = 3;
CGAffineTransform tr = CGAffineTransformScale(self.view.transform, s, s);
CGFloat h = self.view.frame.size.height;
CGFloat w = self.view.frame.size.width;
[UIView animateWithDuration:2.5 delay:0 options:0 animations:^{
self.view.transform = tr;
self.view.center = CGPointMake(w-w*s/2,h*s/2);
} completion:^(BOOL finished) {}];
Чтобы заставить его работать внизу слева, используйте это:
CGFloat s = 3;
CGAffineTransform tr = CGAffineTransformScale(self.view.transform, s, s);
CGFloat h = self.view.frame.size.height;
CGFloat w = self.view.frame.size.width;
[UIView animateWithDuration:2.5 delay:0 options:0 animations:^{
self.view.transform = tr;
self.view.center = CGPointMake(w*s/2,h-h*s/2);
} completion:^(BOOL finished) {}];
Чтобы сделать его работу справа внизу, используйте это:
CGFloat s = 3;
CGAffineTransform tr = CGAffineTransformScale(self.view.transform, s, s);
CGFloat h = self.view.frame.size.height;
CGFloat w = self.view.frame.size.width;
[UIView animateWithDuration:2.5 delay:0 options:0 animations:^{
self.view.transform = tr;
self.view.center = CGPointMake(w-w*s/2,h-h*s/2);
} completion:^(BOOL finished) {}];
См. также: Как масштабировать (масштабировать) UIView для данного CGPoint