drawRect形状迅速的黑框

时间:2015-12-18 18:48:42

标签: ios swift core-graphics drawrect

我正在尝试学习Core Graphics,并且在使用drawRect时遇到了这个问题。 (下图)

我创建了一个继承自UIView的类,它有drawRect代码。在我的viewcontroller类中,我设置尺寸并添加子视图。

结果是我的形状周围有一个黑框。我该如何解决这个问题?

class myViewController: UIViewController {

var bg = Background()

override func viewDidLoad() {
    super.viewDidLoad()

    bg = Background(frame: CGRectMake(50, 50, 50, 50))
    self.view.addSubview(bg)
    self.view.sendSubviewToBack(bg)
}


class Background: UIView {

override func drawRect(rect: CGRect) {
    // Drawing code

    var path = UIBezierPath(ovalInRect: rect)
    UIColor.greenColor().setFill()
    path.fill()

  }
}

enter image description here

2 个答案:

答案 0 :(得分:4)

您需要设置bg元素的背景颜色,只需添加此行bg.backgroundColor = UIColor.clearColor()即可。因此,在viewDidLoad方法中,将代码更新为:

bg = Background(frame: CGRectMake(50, 50, 50, 50))
bg.backgroundColor = UIColor.clearColor()
self.view.addSubview(bg)
self.view.sendSubviewToBack(bg)

答案 1 :(得分:0)

您可以设置矩形的背景颜色

class Background: UIView {
  override func drawRect(rect: CGRect) {
    UIColor.whiteColor().setFill()
    UIRectFill(rect)
    let path = UIBezierPath(ovalInRect: rect)
    UIColor.greenColor().setFill()
    path.fill()
  }
}