-1

我有更多一般性的问题。我有一个子类的自定义类UIView。我覆盖'-drawRect'以在我成功完成的线上绘制点。现在我在我的类中声明另一个我想要动画的 UIView 对象。它应该是一个白色的圆圈轮廓,我想用动画移动它,这就是我希望它是UIView类型的原因。但是我怎么能在里面画呢?例如,如果我有 3 个其他类似情况怎么办?所以我的观点是,我想将所有功能保留在组件的类中,并为一个或多UIView个子视图定制绘图。我想我在概念层面上遗漏了一些东西。

在 ActionScript 3 中,我会这样做:

var first:MovieClip = new MovieClip();   
first.graphics...
......
var nTh:MovieClip = new MovieClip();
nTh.graphics...

这就是我想要实现的(正如我所说,我已经画了里面的点-drawRect,现在我想画一个更大的圆圈,稍后必须动画): 例子

4

1 回答 1

1

经过几天的挣扎和几周没有我的笔记本电脑,我决定回来向你展示我是如何解决我的问题的。如果这对某人有帮助,我会很高兴。它似乎是一个非常简单的解决方案,甚至无需使用 -drawRect。我所做的是创建一个 UIView 实例并在 -initWithFrame 中设置它的边界和位置:

//circleFrameSideSize will serve as the diameter of the circle
UIView *circle = [[UIView alloc] initWithFrame:CGRectMake(0, circleYPos, circleFrameSideSize, circleFrameSideSize)];
circle.layer.borderColor = [UIColor whiteColor].CGColor;
circle.layer.borderWidth = 1;
//here we do the trick for making the circle with using layer's corner radius
circle.layer.cornerRadius = circleFrameSideSize/2;
[self addSubview:circle];

所以就是这样。每次我需要矩形或圆形等图形时,我都会使用这种方法。

PS:我不明白为什么我对我苦苦挣扎了这么久的东西投了反对票,并给出了很好的描述..

于 2013-11-11T09:04:41.673 回答