Как smacl указует, самый простой способ сделать это сдвиньте свое происхождение до нижнего левого угла экрана, используя (screenheight - viewheight - y) вместо y в начале ваших представлений.
Однако вы можете перевернуть систему координат слоев вашего основного вида с помощью CATransform3D. Я делаю это так, чтобы я мог использовать один и тот же код макета Core Animation CALayer между моим iPhone-приложением и клиентом Mac (iPhone инвертирует обычную кварцевую систему координат для CALayers в соответствии с настройками UIViews). Все, что вам нужно сделать для того, чтобы это установить линии
self.layer.sublayerTransform = CATransform3DMakeScale(1.0f, -1.0f, 1.0f);
в коде инициализации для вашего слоя-хостинг UIView. Помните, что это будет перевернуть ваш CALayers, так что любой UIKit рендеринг текста в этих слоях может также должен быть перевернуто с помощью кода, подобного следующему:
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0.0f, self.frame.size.height);
CGContextScaleCTM(context, 1.0f, -1.0f);
UIFont *theFont = [UIFont fontWithName:@"Helvetica" size:fontSize];
[text drawAtPoint:CGPointZero withFont:theFont];
CGContextRestoreGState(context);
Вы можете сделать подобный родом инверсию с помощью CGAffineTransform, но вы также необходимо применить перевод, чтобы сделать эту работу:
CGAffineTransform flipTransform = CGAffineTransformMakeTranslation(0.0f, self.frame.size.height);
flipTransform = CGAffineTransformScale(flipTransform, 1.0f, -1.0f);
Вы можете быть в состоянии использовать аффинные преобразования для преобразования координат координат с использованием CGPointApplyAffineTransform().