Shadow 在 iphone 上很完美,但在 ipad 上它变得很短
Posted
技术标签:
【中文标题】Shadow 在 iphone 上很完美,但在 ipad 上它变得很短【英文标题】:Shadow is perfect on iphone but on ipad its just become very short 【发布时间】:2018-02-19 12:26:36 【问题描述】:这是来自 iphone 的屏幕截图,这里的阴影非常好,但是当我在 ipad 上运行应用程序时,它变成了这样..
现在这是我希望它像 ipad 上的第一张图片一样的问题..
我正在使用此代码来投影
extension UIView
// OUTPUT 1
func dropShadow(scale: Bool = true)
layer.masksToBounds = false
layer.shadowColor = UIColor.black.cgColor
layer.shadowOpacity = 0.5
layer.shadowOffset = CGSize(width: -1, height: 1)
layer.shadowRadius = 1
layer.shadowPath = UIBezierPath(rect: bounds).cgPath
layer.shouldRasterize = true
layer.rasterizationScale = scale ? UIScreen.main.scale : 1
// OUTPUT 2
func dropShadow(color: UIColor, opacity: Float = 0.5, offSet: CGSize, radius: CGFloat = 1, scale: Bool = true)
layer.masksToBounds = false
layer.shadowColor = color.cgColor
layer.shadowOpacity = opacity
layer.shadowOffset = offSet
layer.shadowRadius = radius
layer.shadowPath = UIBezierPath(rect: self.bounds).cgPath
layer.shouldRasterize = true
layer.rasterizationScale = scale ? UIScreen.main.scale : 1
使用这条线在任何视图上投射阴影
shadowView.dropShadow(color: .black, opacity: 0.7, offSet: CGSize(width: -1, height: 1), radius: 5, scale: true)
有人知道问题出在哪里吗??
提前感谢:)
【问题讨论】:
你能用阴影显示视图的框架 没有给框架..我用户自动布局。视图位于 tableviews 单元格中,从单元格的内容视图中具有前导 = 8、traling = 8、顶部 = 8 和底部 = 8 你有没有尝试将你的代码移动到 did layoutsubviews 中?(不要忘记调用 super.didlayoutsubviews() ) @roozbehmo 不,我没试过 你在哪里运行 shadowView.dropShadow 【参考方案1】:问题是当视图尚未正确布局时,您正在使用边界值。
在 viewDidLayoutSubviews 中设置阴影。别忘了拨打super.didlayoutsubviews()
或者你可以打电话
view.layoutIfNeeded()
【讨论】:
以上是关于Shadow 在 iphone 上很完美,但在 ipad 上它变得很短的主要内容,如果未能解决你的问题,请参考以下文章
ALAssetPropertyLocation 在 3gs iPhone 上无法在任何 iOS 4.0+ 上运行,但在 iPhone4 上完美运行
Flutter App 在模拟器(Iphone 12 mini)上完美运行,但在设备上崩溃(Iphone 8 plus)
iOS 内容拦截器在 iPad 上不起作用(在 iPhone 上很好)