【问题标题】:Shadow is perfect on iphone but on ipad its just become very shortShadow 在 iphone 上很完美,但在 ipad 上它变得很短
【发布时间】: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

标签: ios swift uitableview uiview


【解决方案1】:

问题是当视图尚未正确布局时,您正在使用边界值。

在 viewDidLayoutSubviews 中设置阴影。别忘了拨打super.didlayoutsubviews()

或者你可以打电话

view.layoutIfNeeded()

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多