在UIView中居中对齐CAShape层

NNikN

以下是代码未与UIView的中心对齐的图像,白色。

CAShapeLayer *layer = [CAShapeLayer layer];
layer.anchorPoint=CGPointMake(0.5, 0.5);

layer.path=[UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 75.0, 75.0)].CGPath;
layer.fillColor =[UIColor redColor].CGColor;

[self.shapeView.layer addSublayer:layer];

在此处输入图片说明

电脑

anchorPoint不是用于设置CAShapeLayer的位置,而是使用position

let layer = CAShapeLayer()
layer.borderColor = UIColor.blackColor().CGColor
layer.borderWidth = 100

layer.bounds = CGRectMake(0, 0, 50, 50)
layer.position = myView.center
layer.fillColor = UIColor.redColor().CGColor
view.layer.addSublayer(layer)

编辑

抱歉,这么粗略的回答,上面的代码可能无法按您想要的那样工作,这是我刚提出的正确答案。需要注意的重要一点是:如何绘制椭圆形路径确实会影响您的位置CAShapeLayer

let layer = CAShapeLayer()
myView.layer.addSublayer(layer)
layer.fillColor = UIColor.redColor().CGColor
layer.anchorPoint = CGPointMake(0.5, 0.5)
layer.position = CGPointMake(myView.layer.bounds.midX, myView.layer.bounds.midY)
layer.path = UIBezierPath(ovalInRect: CGRectMake(-75.0 / 2, -75.0 / 2, 75.0, 75.0)).CGPath

在Apple Document中,

椭圆形路径是沿顺时针方向创建的(相对于默认坐标系)

换句话说,椭圆形路径是从边缘而不是中心绘制的,因此您必须考虑要绘制的椭圆形的半径。对于您的情况,您需要执行以下操作:

layer.path = UIBezierPath(ovalInRect: CGRectMake(-75.0 / 2, -75.0 / 2, 75.0, 75.0)).CGPath 

现在,我们确保绘制路径的中心等于CAShapeLayer然后,我们可以使用positionproperty随意移动CAShapeLayer下图可以帮助您理解。

在此处输入图片说明 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在UIView中居中对齐CAShape层

来自分类Dev

使用Swift以编程方式在UIView中居中对齐标签和图像

来自分类Dev

使用Swift以编程方式在UIView中居中对齐标签和图像

来自分类Dev

在 html 中对齐段落:居中或居中

来自分类Dev

如何使用左对齐的文本叠加层居中图像

来自分类Dev

JTextPane中单词的居中对齐

来自分类Dev

在JFrame中居中对齐标题

来自分类Dev

JTextPane中单词的居中对齐

来自分类Dev

在JFrame中居中对齐标题

来自分类Dev

文本在CSS中居中对齐或左对齐或左对齐,右对齐不居中

来自分类Dev

在UIView中对齐UIButton的问题

来自分类Dev

android中居中对齐占位符问题

来自分类Dev

垂直居中对齐Bootstrap中的列

来自分类Dev

尝试将TD中的居中对齐按钮

来自分类Dev

在按钮中垂直居中对齐文本

来自分类Dev

如何在div中居中对齐文本

来自分类Dev

需要居中对齐TextView中的单个文本

来自分类Dev

将页脚中的列表对齐到居中

来自分类Dev

使Bootstrap中的导航栏内容居中对齐

来自分类Dev

div中居中对齐文本框

来自分类Dev

使Bootstrap中的列的行居中对齐

来自分类Dev

在ipython Notebook中居中对齐输出

来自分类Dev

在ScrollView中居中并对齐SwiftUI元素

来自分类Dev

在Loader CSS中居中对齐旋转的SVG

来自分类Dev

在div中对齐居中的reCaptha元素

来自分类Dev

如何在转盘中居中对齐文本?

来自分类Dev

在流体布局中创建居中对齐菜单

来自分类Dev

在div或td中居中对齐ap元素

来自分类Dev

在Android布局中居中对齐TextView