如何设置UItextview边框的阴影?

时间:2016-11-18 09:16:34

标签: ios iphone swift uitextview

您好我想在图片中设置UItextView的阴影,如下所示。

enter image description here

我尝试了下面的代码,但它没有给我相同的结果,而是它也使UITextView的文本成为阴影。

self.tv_comments.layer.shadowRadius = 5.0
self.tv_comments.layer.borderColor = UIColor.gray.cgColor
self.tv_comments.layer.borderWidth = 1
self.tv_comments.layer.shadowColor = UIColor.gray.cgColor
self.tv_comments.layer.shadowOffset = CGSize(width: 2.0, height: 2.0)
self.tv_comments.layer.shadowOpacity = 1.0
self.tv_comments.textColor = UIColor.black

上面的代码为我提供了这个不需要的视图

enter image description here

3 个答案:

答案 0 :(得分:1)

您的代码有两个问题:

1)边框

您想要的输出没有边框。所以不要设置一个。

2)查看剪辑阴影

默认情况下,UIView会将其内容剪辑为bounds。因此,您无法看到在界限之外绘制的任何内容(您的阴影)。将clipsToBounds设为false

工作示例:

// Test view setup
let parent = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: 200.0))
parent.backgroundColor = UIColor.white
let tv_comments = UITextView(frame: CGRect(x: 50.0, y: 50.0, width: 100.0, height: 100.0))
tv_comments.text = "Test Test Test Test Test Test "
tv_comments.backgroundColor = UIColor.white
parent.addSubview(tv_comments)

// replace your code with the code below
tv_comments.clipsToBounds = false

tv_comments.layer.shadowRadius = 5.0
tv_comments.layer.shadowColor = UIColor.gray.cgColor
tv_comments.layer.shadowOffset = CGSize(width: 2.0, height: 2.0)
tv_comments.layer.shadowOpacity = 0.8
tv_comments.textColor = UIColor.black

结果:

答案 1 :(得分:1)

您的UITextView背景颜色颜色是否清晰?如果是,则设置UITextViewUITextView图层背景颜色的背景颜色。因为设置UITextView背景颜色nik会将图层的背景颜色设置为nil .So

self.tv_comments.backgroundColor = UIColor.white
//or self.tv_comments.backgroundColor = UIColor.clear
//self.tv_comments.layer.backgroundColor = UIColor.white

self.tv_comments.layer.shadowRadius = 5.0
self.tv_comments.layer.borderColor = UIColor.gray.cgColor
self.tv_comments.layer.borderWidth = 1
self.tv_comments.layer.shadowColor = UIColor.gray.cgColor
self.tv_comments.layer.shadowOffset = CGSize(width: 2.0, height: 2.0)
self.tv_comments.layer.shadowOpacity = 1.0
self.tv_comments.textColor = UIColor.black

答案 2 :(得分:1)

以下代码可以正常使用

self.tv_comments.layer.shadowColor = UIColor.black.cgColor;
self.tv_comments.layer.shadowOffset = CGSize(width: 1.0, height: 1.0)
self.tv_comments.layer.shadowOpacity = 1.0
self.tv_comments.layer.shadowRadius = 5.0
self.tv_comments.layer.masksToBounds = false

但是,当masksToBounds = false时,任何延伸到图层边界外的子图层都将可见。所以UITextField在图层外滚动文字。

如果您遇到问题,只需在UIView下添加另一个UITextView,然后将其设置为显示阴影。