2016-07-07 3 views
1

私はさまざまな解決策を探していましたが、成功しませんでした。私が望むのは、丸い角と影を持つボタンの背景です。私はどちらか一方を同時に行うことはできませんが、両方を同時に行うことはできません。どんな助けも大歓迎です。iOSの丸い角と影のついたボタン

viewDepositButton_.layer.cornerRadius = 5.0; 
CAGradientLayer *viewLayer = [CAGradientLayer layer]; 
[viewLayer setColors:aloColors]; 
[viewLayer setFrame:viewDepositButton_.bounds]; 
[viewDepositButton_.layer insertSublayer:viewLayer atIndex:0]; 
viewDepositButton_.clipsToBounds = YES; 

viewDepositButton_.layer.shadowColor = [UIColor colorWithRed:0.46 green:0.46 blue:0.46 alpha:1.0].CGColor; 
viewDepositButton_.layer.shadowOpacity = 0.8; 
viewDepositButton_.layer.shadowRadius = 8; 
viewDepositButton_.layer.shadowOffset = CGSizeMake(8.0f, 8.0f); 
+1

役立ちますか? –

+0

私はあなたのプロパティを設定した後にあなたのメソッドを呼び出すだろう! [viewDepositButton_.layer insertSublayer:viewLayer atIndex:0]; [viewDepositButton_ viewLayer];}は後で呼び出されるべきです。 – ApolloSoftware

+0

それを見てくださいhttp://stackoverflow.com/questions/4754392/uiview-with-rounded-corners-and-drop-shadow – Alexander

答えて

1

私はあなたのコードを次のように動作させることができました。メソッドを適切な順序で呼び出すようにしてください。影を含む-

 viewDepositButton_.layer.cornerRadius = 5.0; 
     viewDepositButton_.layer.borderWidth = 1.0; 
     viewDepositButton_.layer.shadowColor = [UIColor colorWithRed:0.46 green:0.46 blue:0.46 alpha:1.0].CGColor; 
     viewDepositButton_.layer.shadowRadius = 8; 
     viewDepositButton_.layer.shadowOpacity = 0.8; 
     viewDepositButton_.layer.shadowOffset = CGSizeMake(8.0f, 8.0f); 

     CAGradientLayer *viewLayer = [CAGradientLayer layer]; 
     [viewLayer setColors:aloColors]; 
     [viewLayer setFrame:viewDepositButton_.bounds]; 
     [viewDepositButton_.layer insertSublayer:viewLayer atIndex:0]; 
     [viewDepositButton_ viewLayer];} 
+0

ボタンを注意深く見れば一見するとコーナーは丸くならない国境から伸びる。今のところ私はグラデーションをあきらめて、単純な色を使わなければならないかもしれないと思います。 –

+0

私はそれを動作させる方法を見つけました。上記のコードに必要なのは、私が望んでいなかった境界線を削除し、[viewLayer setCornerRadius:5.0f]を追加することでした。グラデーション層を定義するときに使用します。 –

1

ここは、シャドーで角の丸いボタンを設定するためのコードです。

button.layer.cornerRadius = 15; 
button.layer.shadowRadius = 2.0f; 
button.layer.shadowColor = [UIColor lightGrayColor].CGColor; 
button.layer.shadowOffset = CGSizeMake(-1.0f, 3.0f); 
button.layer.shadowOpacity = 0.8f; 
button.layer.masksToBounds = NO; 

全体的に、このコードはかなり単純です。質問、不安、バグがある場合はコメントしてください。

4

viewDepositButton_.clipsToBounds = YES;またはviewDepositButton_.layer.masksToBounds = YES;は、あなたの層の外側のすべてをクリップします。

は、しかし、あなたは、いくつかのオプションがあります。

  1. は同じコーナー半径としたい影を持っているであろう、親ビューの下にボタンを置きますが、clipsToBounds = NOを持つことになります。この方法では、シャドウを持つビューのサブビューとしてボタンが表示されます。
  2. clipsToBounds希望

NOには丸みを帯びた角を持っている、あなたのボタンの画像を使用して、ボタンを設定し、これはあなたのコードが間違っている何

関連する問題