2016-08-01 2 views
1

J'ai une vue définie comme ceci:composant Alpha sur UIBezierPath Remplissez

class TriangleView: UIView { 


override func drawRect(rect: CGRect) { 

    // Get Height and Width 
    let layerHeight = self.layer.frame.height 
    let layerWidth = self.layer.frame.width 

    // Create Path 
    let bezierPath = UIBezierPath() 

    bezierPath.moveToPoint(CGPointMake(0, 0)) 
    bezierPath.addLineToPoint(CGPointMake(0, layerHeight)) 
    bezierPath.addLineToPoint(CGPointMake(layerWidth, layerHeight + 4)) 
    bezierPath.addLineToPoint(CGPointMake(0, 0)) 
    bezierPath.closePath() 

    // Apply Color 
    UIColor(red: (69/255.0), green: (209/255.0), blue: (153/255.0), alpha: 1.0).setFill() 
    bezierPath.fill() 

    // Mask to Path 
    let shapeLayer = CAShapeLayer() 
    shapeLayer.borderColor = UIColor.clearColor().CGColor 
    shapeLayer.path = bezierPath.CGPath 
    self.layer.mask = shapeLayer 

} 

} 

Je suis en train de le rendre semi-transparent, mais en utilisant UIColor(red: (69/255.0), green: (209/255.0), blue: (153/255.0), alpha: 0.5).setFill() ainsi que l'utilisation bezierPath.fillWithBlendMode(.Normal, alpha: 0.5) produit le même résultat d'un plus sombre que couleur normale sans transparence, plus je diminue le alpha dans les deux cas, plus la couleur devient sombre. Je ne suis pas sûr de ce que je fais mal.

Répondre

2

Définissez les vues backgroundColor à UIColor.clearColor().

0

Je pense que vous assignez la TriangleView pour la vue principale qui présente sur le ViewController. Au lieu de cela glisser une autre vue de la bibliothèque d'objets et lui attribuer comme TriangleView