Uiviewの右と下に影を落とさなければなりません。インターフェイスビルダーでこれを行っていますが、影が上に落ちているのがわかります。異なるサイズを試してみました。
layer.masksToBound=No
layer.shadowOpacity=0.15
layer.shadowRadius=2
layer.shadowOffSet={10,-10} //Values being set in Interfacebuilder.
それでも、これは上部に影を落とします。
次のコードを試してください、それはあなたを助けるかもしれません
myView.layer.shadowColor = [UIColor purpleColor].CGColor;
myView.layer.shadowOffset = CGSizeMake(5, 5);
myView.layer.shadowOpacity = 1;
myView.layer.shadowRadius = 1.0;
myView.layer.maskToBounds = NO;
このコードをテストしましたが、動作し、出力は次のとおりです。
こんにちは私は以下のコードを使用しました、それはあなたが望む影を提供します。
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:_viewShadow.bounds];
_viewShadow.layer.masksToBounds = NO;
_viewShadow.layer.shadowColor = [UIColor blackColor].CGColor;
_viewShadow.layer.shadowOffset = CGSizeMake(10.0f, 5.0f); /*Change value of X n Y as per your need of shadow to appear to like right bottom or left bottom or so on*/
_viewShadow.layer.shadowOpacity = 0.5f;
_viewShadow.layer.shadowPath = shadowPath.CGPath;
また、masksToBoundsはimpです。これは、ビューの境界よりもさらに広がるサブレイヤーのクリッピングを無効にするためです。 YESにすると、サブレイヤーをクリップするため影が見えなくなります。NOの場合はレイヤーを拡張できます。
Swiftでは、CGSizeMake
はもう存在しません。 CGSize(width: 20, height: 10)
に変更されました。したがって、shadowOffset
はSwiftで次のように設定できます。
myView.layer.shadowOffset = CGSize(width: 20, height: 10)
シャドウオフセットが正しくないと思います。 {10、10}のようになります:
[layer setShadowOffset:CGSizeMake( 10 , 10 ) ];