在UITextView的边框周围投下阴影,在iOS / swift中为它提供3d效果

时间:2017-10-21 06:49:54

标签: ios swift xcode uitextview shadow

有没有办法在UITextView的边框周围放一个阴影来赋予它3D效果? textView有圆角。

我不想为textView(即文本)的内容删除阴影。仅在textView边框周围。

我需要在textView上使用clipToBounds作为圆角。

到目前为止,这是我尝试过的:

let shadowLayer = CAShapeLayer()
shadowLayer.path = UIBezierPath(roundedRect: textView.bounds, cornerRadius: 15).cgPath
shadowLayer.fillColor = UIColor.clear.cgColor
shadowLayer.shadowColor = UIColor.black.cgColor
shadowLayer.shadowPath = shadowLayer.path
shadowLayer.shadowOffset = CGSize(width: 2, height: 2)
shadowLayer.shadowOpacity = 1
shadowLayer.shadowRadius = 2
textView.layer.addSublayer(shadowLayer)

这导致:

enter image description here

1 个答案:

答案 0 :(得分:1)

原因: Clips to bounds = true和同一视图上的shadow不能同时运行。所以要理清这一点,你必须遵循。

  1. 在UIView中添加TextView(说viewTextBG)。
  2. TextView约束:顶部底部,前导,尾部= 0 wrt。 viewTextBG
  3. 将转角半径设为textviewviewTextBG

    textview.cornerRadius = 10
    viewTextBG.cornerRadius = 10
    
  4. 将clipsToBounds提供给textviewviewTextBG

    textview.clipsToBounds = True
    viewTextBG.clipsToBounds = false
    
  5. 现在为viewTextBG提供阴影。

  6. 现在一切正常,就是这样。