UIView阴影和圆角

问题描述 投票:1回答:3

我有一个UIView,我想要一个阴影和圆角。问题是-阴影需要masksToBounds = NO,而圆角需要masksToBounds = YES

我发现的解决方案是有一个具有阴影的容器,并将我的UIView添加为该容器的子视图-并将其圆角。

这有效。我既有阴影又有圆角-但这不好。阴影是矩形视图,我的图像有圆角。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS95QlZTVC5wbmcifQ==” alt =“阴影和圆角”>

如何实现圆角阴影?

ios objective-c uiview calayer shadow
3个回答
0
投票

删除容器,它会修剪您的视图阴影。导入QuartzCore/QuartzCore.h。并尝试此代码查看您的视图

#import < QuartzCore/QuartzCore.h>

...

view.layer.cornerRadius = 5.0f;
[view.layer setShadowColor:[UIColor redColor].CGColor];
[view.layer setShadowOpacity:0.7];
[view.layer setShadowRadius:5.0];
[view.layer setShadowOffset:CGSizeMake(2.0, 2.0)];

要了解有关maskToBound的更多信息,请参见此链接

What UIView layer.masksToBounds is doing if set to YES?


0
投票
import UIKit

@IBDesignable
class customButton: UIView {

    @IBInspectable var cornerRadius:CGFloat = 0{
        didSet{
            self.layer.cornerRadius = cornerRadius
        }
    }

    @IBInspectable var borderWidth:CGFloat = 0{
        didSet{
            self.layer.borderWidth = borderWidth
        }
    }

    @IBInspectable var borderColor:UIColor = UIColor.white{
        didSet{
            self.layer.borderColor = borderColor.cgColor
        }
    }


}

将此设置为UIView的类,然后放置maskToBound = true。然后在检查器中相应地设置值以得到rounded阴影。


-1
投票
// border radius
[yourView.layer setCornerRadius:30.0f];

// border
[yourView.layer setBorderColor:[UIColor blackColor].CGColor];
[yourView.layer setBorderWidth:1.5f];
 yourView.layer.masksToBounds=YES;

// drop shadow
[yourView.layer setShadowColor:[UIColor lightGrayColor].CGColor];
[yourView.layer setShadowOpacity:0.8];
[yourView.layer setShadowRadius:3.0];
[yourView.layer setShadowOffset:CGSizeMake(2.0, 2.0)];

这可能对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.