菜鸟教程小白 发表于 2022-12-12 14:48:49

ios - 屏幕中间的 CAShapeLayer 圆圈居中


                                            <p><p>我正在通过 CAShapeLayer 绘制一个圆圈,现在我希望我的圆圈位于屏幕中间。圆圈的中点一定是我视野的中点。</p>

<p>这就是我现在尝试这样做的方式:</p>

<pre><code>- (void)_initCircle {
    ;
    _circle = ;
    _radius = 100;

    // Create a circle
    _circle.path = .CGPath;

    // Center the shape in self.view
    _circle.position = CGPointMake(CGRectGetMidX(self.view.bounds) - _radius,
                                 CGRectGetMidY(self.view.bounds) - _radius);

    _circle.fillColor = .CGColor;
    _circle.lineWidth = 5;

    // Add to parent layer
    ;
}
</code></pre>

<p>屏幕截图清楚地表明圆圈在中间并不完美,因为标签位于屏幕中间(中心 Y )。圆圈的蓝色和黑色应该等于我认为的标签。</p>

<p> <img src="/image/lli6i.png" alt="enter image description here"/> </p>

<p>我没有看到计算错误,有人可以帮我吗?</p>

<p>编辑:</p>

<p>改变框架的边界并关闭半径会给我这个结果:</p>

<p> <img src="/image/joTvO.png" alt="enter image description here"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>图层相对于它们的 anchor 定位自己,因此您可以尝试这样做:</p>

<pre><code>// Center the shape in self.view
_circle.position = self.view.center;
_circle.anchorPoint = CGPointMake(0.5, 0.5);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 屏幕中间的 CAShapeLayer 圆圈居中,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29229695/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29229695/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 屏幕中间的 CAShapeLayer 圆圈居中