gpt4 book ai didi

iphone - 弧在圆上的位置

转载 作者:行者123 更新时间:2023-11-28 23:08:55 25 4
gpt4 key购买 nike

我有几个像素宽的圆圈(圆圈是基于 UIBezierPath 的)。我必须在圆上放置一个圆弧(基本上是带有自定义绘图的 UIView 子类),以便圆弧覆盖圆。我知道如何计算弧度和位置的旋转,但有些地方不对。我的意思是我知道原因 - 这是因为分配给 UIView 中心的 center 属性,如果它是圆弧的中心,一切都会很好。但事实并非如此。

我也知道怎么解决了。我必须计算我将放置圆弧的较小半径。但是如何做到这一点。基本上这看起来很容易,但由于圆弧在矩形 UIView 中,它变得有点难。我将向您展示一些图片,以便您了解问题所在。

enter image description here enter image description here

最佳答案

最简单的方法是更改​​每个弧 View 图层的 anchor 。 You can read about the anchor point here如果你还不知道的话。您需要将 QuartzCore 框架添加到构建目标并添加 #import <QuartzCore/QuartzCore.h> .

CGRect circleBounds = circleView.bounds;

topArcView.layer.anchorPoint = CGPointMake(.5, 0);
topArcView.layer.position = CGPointMake(CGRectGetMidX(circleBounds), 0);

bottomArcView.layer.anchorPoint = CGPointMake(.5, 1);
bottomArcView.layer.position = CGPointMake(CGRectGetMidX(circleBounds), CGRectGetMaxY(circleBounds));

leftArcView.layer.anchorPoint = CGPointMake(0, .5);
leftArcView.layer.position = CGPointMake(circleBounds.origin.x, CGRectGetMidY(circleBounds));

rightArcView.layer.anchorPoint = CGPointMake(1, .5);
rightArcView.layer.position = CGPointMake(CGRectGetMaxX(circleBounds), CGRectGetMidY(circleBounds));

关于iphone - 弧在圆上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com