为 UIWebView 和 UITextView 添加投影效果

5

我有一个UITextView和一个WebView并排放置,我想给它们都添加一个投影效果。这是一个iPad应用程序,所以它们会旋转,因此在它们下面放置一个ImageView可能行不通。有什么好的想法吗?

4个回答

12

UIView有CALayer,而CALayer内置了一些阴影支持。尝试使用以下属性:

view.layer.shadowColor
view.layer.shadowOffset
view.layer.shadowOpacity
view.layer.shadowRadius

这可能会相当快地为您提供所需的内容。您可能需要 #import <QuartzCore/QuartzCore.h> 以使编译器理解正在发生的事情。


已经弄清楚了。谢谢! - user288225
4
可以发表一下你的解决方案吗?接受的答案似乎按照原样不适用于我的情况。 - typeoneerror

7
解决方案如下:
[myTextBox.layer setShadowColor:[[UIColor blackColor] CGColor]];
[myTextBox.layer setShadowOffset:CGSizeMake(1.0, 1.0)];
[myTextBox.layer setShadowOpacity:1.0];
[myTextBox.layer setShadowRadius:0.3];

但这仅适用于3.2及以上版本的操作系统。


2

以下是 Swift 代码版本:

func applyDropShadow() {
    textView.layer.shadowColor = UIColor.blackColor().CGColor
    textView.layer.shadowOffset = CGSizeMake(3, 3)
    textView.layer.shadowOpacity = 0.7
    textView.layer.shadowRadius = 8.0
    textView.clipsToBounds = false

}

谢谢您,没有 clipsToBounds,阴影对我来说是不可见的。 - BeneGal

1
我会添加一个视图,位于文本字段后面,并将阴影效果应用于该视图。这样阴影就不会随内容移动了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接