Я рисую круг через CAShapeLayer, теперь я хочу, чтобы мой круг был в центре экрана. Средняя точка круга должна быть средней точкой моего зрения.
Вот как я сейчас пытаюсь это сделать:
- (void)_initCircle {
[_circle removeFromSuperlayer];
_circle = [CAShapeLayer layer];
_radius = 100;
// Create a circle
_circle.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 2.0 * _radius, 2.0 * _radius) cornerRadius:_radius].CGPath;
// Center the shape in self.view
_circle.position = CGPointMake(CGRectGetMidX(self.view.bounds) - _radius,
CGRectGetMidY(self.view.bounds) - _radius);
_circle.fillColor = [UIColor clearColor].CGColor;
_circle.lineWidth = 5;
// Add to parent layer
[self.view.layer addSublayer:_circle];
}
На снимке экрана видно, что окружность не идеальна посередине, потому что метка находится в центре экрана (по центру Y). Где синий и черный круг, который должен быть равен метке, я думаю.
Я не вижу ошибки расчета, кто-нибудь может мне помочь?
РЕДАКТИРОВАТЬ:
Изменение границ кадра и отключение радиуса дает мне такой результат: