У меня есть приложение, оно работает в ландшафтном режиме, я держу его в ландшафтном режиме при отладке на телефоне.Я выбираю значение центра из UIView на моем главном контроллере вида, мне нужно это, чтобы поместить элементы в центр экрана, и, поскольку оно универсально, мне нужно, чтобы оно было переменным и не устанавливалось на размеры экрана iPhone.
Когда я делаю это и читаю x и y из CGPoint, возвращаемого view.center, я получаю x = 170 y = 240
Делегат - это единственный viewcontroller в моем приложении, функция center - однаобъекта, который я хочу переместить в центр.
- (void) center
{
CGPoint center = ((UIViewController*)delegate).view.center;
CGSize size = self.frame.size;
double x = center.x - size.width/2 - location.x;
double y = center.y - size.height/2 - location.y;
[self _move:1.0 curve:UIViewAnimationCurveEaseInOut x:x y:y];
}
- (void)_move: (NSTimeInterval)duration
curve:(int)curve x:(CGFloat)x y:(CGFloat)y
{
// Setup the animation
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve:curve];
[UIView setAnimationBeginsFromCurrentState:YES];
// The transform matrix
CGAffineTransform transform = CGAffineTransformMakeTranslation(x, y);
self.transform = transform;
// Commit the changes
[UIView commitAnimations];
}
Теперь для меня это не имеет особого смысла.