您好我想在图片中设置UItextView的阴影,如下所示。
我尝试了下面的代码,但它没有给我相同的结果,而是它也使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
上面的代码为我提供了这个不需要的视图
答案 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
背景颜色颜色是否清晰?如果是,则设置UITextView
或UITextView
图层背景颜色的背景颜色。因为设置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
,然后将其设置为显示阴影。