【问题标题】:how to fix this border issue如何解决此边界问题
【发布时间】:2019-04-01 03:01:56
【问题描述】:

我正在使用边框阴影,直到 iPhone 6s 都可以正常工作,但在更大的变体中边框不会出现。

我的层次结构如下: tableView --> cell--> view(parentView)--> objects

   created extension for uiView:

 func addViewShadow(offset: CGSize, radius: CGFloat, color: UIColor, opacity: Float, cornerRadius: CGFloat? = nil) {
    self.layer.shadowOffset = offset
    self.layer.shadowRadius = radius
    self.layer.shadowOpacity = opacity
    self.layer.masksToBounds = false
    self.layer.shadowColor = color.cgColor
    if let r = cornerRadius {

        self.layer.shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: r).cgPath
        self.layer.cornerRadius = r
        //            self.clipsToBounds = true
    }
}

在课堂上使用:

cell.parentView.addViewShadow(offset: CGSize.zero, radius: 2, color: UIColor.darkGray, opacity: 1,cornerRadius: 5)

图片:

【问题讨论】:

  • 只要确保表格的自动布局约束工作正常,不要忘记 setNeedsDisplay() 可能会有所帮助
  • 我什至不认识一个叫bounds的人。
  • 在视图的-layoutSubviews()-draw(rect:) 方法中绘制它,而不是在为当前屏幕评估视图的边界时。

标签: ios swift


【解决方案1】:

将添加阴影的代码移至layoutSubviews

【讨论】:

    【解决方案2】:

    此问题的最佳解决方案是为您放入单元格中的视图提供白色

    将颜色从默认更改为白色,这是最好的解决方案,试试吧:)

    【讨论】:

      【解决方案3】:
      override func layoutSubviews() {
              super.layoutSubviews()
      //your code here
          }
      

      【讨论】:

      • 虽然此代码可能会解决问题,including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 2020-12-28
      • 2011-06-28
      相关资源
      最近更新 更多