如何在 iPhone/iOS 中在 UIView 下绘制阴影?


为了使我们的用户界面更具吸引力,我们必须在 iOS 开发中尝试多种属性。要在视图周围或视图下方绘制阴影,我们必须试验图层和视图。

让我们通过两种方式来实现这一点。

方法 1 − 只需在任何需要的地方进行编码。

self.layer.masksToBounds = NO;
self.layer.cornerRadius = 2;
self.layer.shadowOffset = CGSizeMake(-5, 10);
self.layer.shadowRadius = 3;
self.layer.shadowOpacity = 0.3;

方法 2 − 创建 IBDesignable 和 IBInspectable,并与故事面板一起使用。

@IBDesignable
class DesignableView: UIView { }
extension UIView {
   @IBInspectable
   var shadowRadius: CGFloat {
      get {
         return layer.shadowRadius
      }
      set {
         layer.shadowRadius = newValue
      }
   }
   @IBInspectable
   var shadowOpacity: Float {
      get {
         return layer.shadowOpacity
      }
      set {
         layer.shadowOpacity = newValue
      }
   }
   @IBInspectable
   var shadowOffset: CGSize {
      get {
         return layer.shadowOffset
      }
      set {
         layer.shadowOffset = newValue
      }
   }
   @IBInspectable
   var shadowColor: UIColor? {
      get {
         if let color = layer.shadowColor {
            return UIColor(cgColor: color)
         }
         return nil
      }
      set {
         if let color = newValue {
            layer.shadowColor = color.cgColor
         } else {
            layer.shadowColor = nil
         }
      }
   }
}

我们可以使用上面针对 UIView 的扩展,使所有故事面板都可以访问这些属性,并在无需运行就能在设备上看到结果的情况下尝试各种设计。这些更改将在故事面板上实时进行。下面是一个示例。

更新于: 27-6 月-2020

180 次浏览

提升你的 事业

通过完成课程获得认证

开始
广告