UIImageView 上的阴影问题
Shadow on UIImageView issue
我正在尝试设置一个 cornerRadius
和一个 UIImageVIew
的影子,它位于 UICollectionViewCell
的内部。问题是我设置了 clipToBounds = true
并停止了阴影和 cornerRadius
。
我想要图像的 cornerRadius、clipToBounds 和阴影。不知道我在这里做错了什么。
class PostPhotoCell: UICollectionViewCell {
@IBOutlet weak var selectedImage: UIImageView!
@IBOutlet weak var deleteButton: UIButton!
override func awakeFromNib()
{
super.awakeFromNib()
selectedImage.layer.cornerRadius = 5.0
selectedImage.contentMode = .scaleAspectFill
//applying overall shadow to image
selectedImage.layer.shadowColor = UIColor(white: 0.0, alpha: 0.5).cgColor
selectedImage.layer.shadowOffset = CGSize(width: 0, height: 0)
selectedImage.layer.shadowOpacity = 1.0
selectedImage.layer.shadowRadius = 6.0
selectedImage.clipsToBounds = true
}
}
尝试:
selectedImage.layer.masksToBounds = 真
检查 aspectMode 并检查剪辑子视图。
您需要有一个 UIView
作为影子容器并将您的 UIImageView
添加到其中。以下是使阴影和角半径与 UIImageView
.
一起工作所需的示例
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let shadowView = UIView(frame: CGRect(x: 100, y: 100, width: 128, height: 128))
shadowView.clipsToBounds = false
shadowView.layer.shadowColor = UIColor(white: 0.0, alpha: 0.5).cgColor
shadowView.layer.shadowOpacity = 1.0
shadowView.layer.shadowOffset = CGSize.zero
shadowView.layer.shadowRadius = 6.0
shadowView.layer.shadowPath = UIBezierPath(roundedRect: shadowView.bounds, cornerRadius: 6.0).cgPath
view.addSubview(shadowView)
let imageView = UIImageView()
imageView.image = UIImage(named: "YOUR_IMAGE_NAME")
imageView.frame = shadowView.bounds
imageView.clipsToBounds = true
imageView.layer.cornerRadius = 5
shadowView.addSubview(imageView)
}
如果你在 imageview 上同时给角半径和阴影,是行不通的。尝试在视图中使用 imageview,然后在 view 上给出圆角半径,在 imageview 上给出阴影
我正在尝试设置一个 cornerRadius
和一个 UIImageVIew
的影子,它位于 UICollectionViewCell
的内部。问题是我设置了 clipToBounds = true
并停止了阴影和 cornerRadius
。
我想要图像的 cornerRadius、clipToBounds 和阴影。不知道我在这里做错了什么。
class PostPhotoCell: UICollectionViewCell {
@IBOutlet weak var selectedImage: UIImageView!
@IBOutlet weak var deleteButton: UIButton!
override func awakeFromNib()
{
super.awakeFromNib()
selectedImage.layer.cornerRadius = 5.0
selectedImage.contentMode = .scaleAspectFill
//applying overall shadow to image
selectedImage.layer.shadowColor = UIColor(white: 0.0, alpha: 0.5).cgColor
selectedImage.layer.shadowOffset = CGSize(width: 0, height: 0)
selectedImage.layer.shadowOpacity = 1.0
selectedImage.layer.shadowRadius = 6.0
selectedImage.clipsToBounds = true
}
}
尝试: selectedImage.layer.masksToBounds = 真
检查 aspectMode 并检查剪辑子视图。
您需要有一个 UIView
作为影子容器并将您的 UIImageView
添加到其中。以下是使阴影和角半径与 UIImageView
.
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let shadowView = UIView(frame: CGRect(x: 100, y: 100, width: 128, height: 128))
shadowView.clipsToBounds = false
shadowView.layer.shadowColor = UIColor(white: 0.0, alpha: 0.5).cgColor
shadowView.layer.shadowOpacity = 1.0
shadowView.layer.shadowOffset = CGSize.zero
shadowView.layer.shadowRadius = 6.0
shadowView.layer.shadowPath = UIBezierPath(roundedRect: shadowView.bounds, cornerRadius: 6.0).cgPath
view.addSubview(shadowView)
let imageView = UIImageView()
imageView.image = UIImage(named: "YOUR_IMAGE_NAME")
imageView.frame = shadowView.bounds
imageView.clipsToBounds = true
imageView.layer.cornerRadius = 5
shadowView.addSubview(imageView)
}
如果你在 imageview 上同时给角半径和阴影,是行不通的。尝试在视图中使用 imageview,然后在 view 上给出圆角半径,在 imageview 上给出阴影