0

またはボタンのグラデーションカラーUIViewを2色の黒で実現しようとしています。これは、クリアカラーまたはホワイトカラーにフェードアウトします(画像を参照してください)。

白色、透明色のさまざまな組み合わせを試してみました。アルファも実験中。以下のコードに示すようにプロパティも設定しlocationsましたが、目的の結果を得ることができません。

誰が私が間違っているか教えてもらえますか。:)

       let colorClear = UIColor.clearColor().CGColor
    let colorLeft =  UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.9).CGColor
    let colorRight = UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0).CGColor

    let gradientLayer = CAGradientLayer()
    gradientLayer.colors = [colorLeft, colorRight]
    gradientLayer.locations = [ 0.1, 0.9]
    gradientLayer.frame = self.createAccountView.bounds
    gradientLayer.startPoint = CGPoint(x:0.0, y:0.5)
    gradientLayer.endPoint = CGPoint(x:1.0, y:0.5)
    createAccountView.layer.addSublayer(gradientLayer)
    createAccountView.layer.masksToBounds = true

望ましい結果は、黒色が色あせた色に移行するものです。

両方の色を黒に設定し、color1 にアルファを設定しようとしました。locations私はすでにプロパティ にコメントしようとしました。望ましい結果ここに画像の説明を入力

4

1 に答える 1

0

viewDidLayoutSubviews() で gradientLayer.frame を設定する必要があります。

このような:

class ViewController: UIViewController {

    let gradientLayer = CAGradientLayer()

    override func viewDidLoad() {
    let colorClear = UIColor.clearColor().CGColor
let colorLeft =  UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.9).CGColor
let colorRight = UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0).CGColor

    self.gradientLayer.colors = [colorLeft, colorRight]
    self.gradientLayer.locations = [ 0.1, 0.9]
    self.gradientLayer.startPoint = CGPoint(x:0.0, y:0.5)
    self.gradientLayer.endPoint = CGPoint(x:1.0, y:0.5)
    createAccountView.layer.addSublayer(self.gradientLayer)
    createAccountView.layer.masksToBounds = true
}

override viewDidLayoutSubviews() {
    super.viewDidLayoutSubViews()
    self.gradientLayer.frame = self.createAccountView.bounds
}
于 2016-09-29T08:06:41.023 に答える