Swift 3绘制一个具有透明度的简单png图像

时间:2017-12-03 22:12:56

标签: ios swift swift3 png core-graphics

我需要在弧线周围绘制不超过9个相同的图像。我已经将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)

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

2 个答案:

答案 0 :(得分:0)

你永远不应该直接调用drawRect。将图像视图放在所需位置,安装图像,系统将为您绘制图像。将图像视图的不透明标志设置为false。

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

答案 1 :(得分:0)

您不需要明确地编写xml,而您可以编写自定义&的代码。可重用的视图,但更好的方法是使用故事板,它负责处理相对非常容易处理的约束。在故事板中添加您想要的对象后。例如,你想要添加一个圆圈,你可以拖动视图,将它放在你想要的任何地方,然后将它变成一个具有view.layer.cornerRadius =高度一半属性的圆圈,你也可以通过像isHidden,opaque这样的属性隐藏/显示并做一堆东西。如果您需要任何帮助,请询问。