【问题标题】:Swift 3 xcode storyboard, add box-shadow to UIView, like a CSS style box-shadowSwift 3 xcode 故事板,将 box-shadow 添加到 UIView,就像 CSS 样式的 box-shadow
【发布时间】:2017-07-03 19:10:12
【问题描述】:

如您所见,我想在单元格中的每个 UIView 的边缘周围添加一个阴影,显示为灰色的白色,很难清楚地看到它的边界。

【问题讨论】:

    标签: swift xcode swift3 storyboard


    【解决方案1】:

    设置视图的阴影属性以添加阴影。

    SWIFT 3

    YourView.layer.shadowOpacity = 0.7
    YourView.layer.shadowOffset = CGSize(width: 3, height: 3)
    YourView.layer.shadowRadius = 15.0
    YourView.layer.shadowColor = UIColor.darkGray.cgColor
    

    注意:将 YourView 替换为您想要阴影的视图。

    【讨论】:

    • 我在“YourView”中替换什么?
    • YourView 替换为您想要添加阴影的视图。
    • 我如何定义“YourView”是什么?我在故事板中构建了所有内容。
    • 您已经创建了表格视图单元格类。对于您在情节提要的表格视图中创建的单元格。所以在你的 tableview 单元类中使用IBOutlet 连接你的所有视图。在那里你可以得到YourView
    • 请。我需要指导方针。不是理论。我不知道我应该做什么。
    【解决方案2】:

    这是我的处理方法:

    您创建了一个名为 ShadowView 的新类。

    import UIKit
    
    @IBDesignable
    class ShadowView: UIView {
        //Shadow
        @IBInspectable var shadowColor: UIColor = UIColor.black {
            didSet {
                self.updateView()
            }
        }
        @IBInspectable var shadowOpacity: Float = 0.5 {
            didSet {
                self.updateView()
            }
        }
        @IBInspectable var shadowOffset: CGSize = CGSize(width: 3, height: 3) {
            didSet {
                self.updateView()
            }
        }
        @IBInspectable var shadowRadius: CGFloat = 15.0 {
            didSet {
                self.updateView()
            }
        }
    
        //Apply params
        func updateView() {        
            self.layer.shadowColor = self.shadowColor.cgColor
            self.layer.shadowOpacity = self.shadowOpacity
            self.layer.shadowOffset = self.shadowOffset
            self.layer.shadowRadius = self.shadowRadius
        }
    }
    

    然后你可以应用这个类为你在情节提要中查看:

    现在您可以在属性检查器中编辑值:

    【讨论】:

      【解决方案3】:

      您可以根据需要选择不透明度。

      override func awakeFromNib() 
      {
              super.awakeFromNib()
      
              self.viewContainer.layer.shadowOffset =  CGSize(width: 0, height: 1)   // CGSizeMake(0, 1)
              self.viewContainer.layer.shadowColor = UIColor.black.cgColor
              self.viewContainer.layer.shadowRadius = 1.5
              self.viewContainer.layer.shadowOpacity = 0.65
              self.viewContainer.layer.cornerRadius = 1
              self.viewContainer.clipsToBounds = true
              self.viewContainer.layer.masksToBounds = false       
              self.layer.masksToBounds = false
          }
      

      【讨论】:

      • 在单元格中会有 awakefromnib ,复制并粘贴这段代码或用这个替换那个方法
      • 也不确定单元类在哪里。
      • 您在故事板中为您的单元格创建了一个类
      • 如果您输入一些详尽的答案和说明,这会容易得多。
      • 这个方法本身对于ios开发者来说已经足够了。我不确定你以前是否使用过 tableview 单元格。转到 cellForRowAtIndexPath -> ctrl + 点击你的单元格 -> 把这个方法放在那里。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2017-09-09
      • 1970-01-01
      • 2019-03-06
      • 2011-05-08
      相关资源
      最近更新 更多