Swift 3 画一个简单的透明png图片

Swift 3 draw a simple png image with transparency

我需要围绕一个圆弧绘制不超过 9 个相同的图像。我 subclassed UiView 已经用 CoreGraphics 画了一个圆和几条弧。现在我需要像时钟一样在它周围绘制这些标记对象。我已经在 Android Java 做过一次,但到目前为止在 Swift 一直玩得很开心。 我从另一个答案中拼凑了这段代码,它绘制了图像但不保持透明度:

let imageName = "single_marker_vertical_high_res.png";
let image = UIImage(named: imageName);
let imageView = UIImageView(image: image!);
imageView.frame = CGRect(x: 0, y: 0, width: 25, height: 75);
imageView.draw(rect)

这是在 class 的重写绘制函数上调用的。
我也是 Swift 的菜鸟,我还没有找到一个示例来展示代码以及如何使用它。作为参考,这是我需要的:
As it looks on Android 顶部小部件上的刻度线是我需要绘制的,具有透明度。

切勿直接调用 drawRect。将图像视图放在所需位置,安装图像,系统将为您绘制它们。将图像视图的不透明标志设置为 false。

您可能应该使用自动布局约束放置图像视图,而不是使用框架放置它们。如果您不添加约束,系统将移动它们。看看NSLayoutAnchor。这是创建约束的简单方法。

你不需要明确地写xml,虽然你可以为自定义和可重用的视图编写代码,但更好的方法是使用故事板,它会处理约束,这些约束相对非常易于处理。在故事板中添加您想要的对象后。例如你想添加一个圆圈,你可以拖动视图,把它放在你想要的任何地方,然后把它变成一个圆圈,属性比如 view.layer.cornerRadius = 你身高的一半,你也可以 hide/show 通过属性比如 isHidden ,不透明并做很多事情。如果您需要任何帮助,请直接询问。