Buttonのグラデーションエフェクトを追加し、サブレイヤーとしてButton
に追加しました。UAGuttonが強調表示されている状態からCAGradientLayerを削除するには
コードは次のとおりです。
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.myButton.layer.bounds;
gradientLayer.colors = [NSArray arrayWithObjects: (id)[[UIColor whiteColor] colorWithAlphaComponent:0.5].CGColor,(id) colorTwo.CGColor,(id) colorThree.CGColor,(id) colorFour.CGColor, nil];
gradientLayer.locations = [NSArray arrayWithObjects: [NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:1.0f], nil];
self.myButton.layer.cornerRadius = 5;
gradientLayer.cornerRadius = self.myButton.layer.cornerRadius;
[self.myButton.layer addSublayer:gradientLayer];
今私のボタンが強調表示されたとき(touchedDownメソッドが呼ばれる)、私は、myButtonという新しいグラデーションを設定します。したがって、myButtonをクリックして新しいグラデーションを追加するときに、古いグラデーションエフェクトを削除する必要があります。
古いグラデーションエフェクトを削除するにはどうすればよいですか?
私は
for (CALayer *layer in [self.loginScreenView.btnPowerBroking.layer.sublayers copy]){
if ([[layer name] isEqualToString:@"gradientLayer"]) {
NSLog(@"Gradient layer found.");
}
}
を試みたが、私はそれは、勾配層だ得ることができません。
お時間をいただきありがとうございます。 (:。あなたはそれを設定し、それが動作しますあなたのgradientLayer
オブジェクトにname
プロパティを設定していないループのif statement
ために
gradientLayer.name = @"gradientLayer";
[self.myButton.layer addSublayer:gradientLayer];
を
おかげで、この方法を試してみてください。私は質問でこれらの小さな事に気付かなかった。私は次の質問をしながらこれらを覚えています。 (: – Ganesh