Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 像UITextField一样隐藏UITextview_Objective C_Ios_Uitextfield_Uitextview - Fatal编程技术网

Objective c 像UITextField一样隐藏UITextview

Objective c 像UITextField一样隐藏UITextview,objective-c,ios,uitextfield,uitextview,Objective C,Ios,Uitextfield,Uitextview,我已经搜索了苹果的文档和其他关于堆栈溢出的帖子,但是我仍然无法在UITextView内部添加阴影。我想让它看起来像一个UITextField。这是我试过的代码 CALayer *frontLayer = self.frontField.layer; [frontLayer setBorderColor:CGColorCreate(CGColorSpaceCreateDeviceGray(), nil)]; [frontLayer setBorderWidth:1]; [frontLayer se

我已经搜索了苹果的文档和其他关于堆栈溢出的帖子,但是我仍然无法在UITextView内部添加阴影。我想让它看起来像一个UITextField。这是我试过的代码

CALayer *frontLayer = self.frontField.layer;
[frontLayer setBorderColor:CGColorCreate(CGColorSpaceCreateDeviceGray(), nil)];
[frontLayer setBorderWidth:1];
[frontLayer setCornerRadius:5];
[frontLayer setShadowRadius:10.0];
CGSize shadowOffset = {0.0,3.0};
[frontLayer setShadowOffset:shadowOffset];
[frontLayer setShadowOpacity:1];
self.frontField.clipsToBounds = YES;

我哪里做错了

从简单开始,尝试以下方法:

[myTextView.layer setShadowColor:[[UIColor blackColor] CGColor]];
[myTextView.layer setShadowOffset:CGSizeMake(1.0, 1.0)];
[myTextView.layer setShadowOpacity:1.0];
[myTextView.layer setShadowRadius:0.3];
[myTextView.layer.masksToBounds = NO]; //<-- for UITextView!
然后,您可以将其他属性以1比1的形式添加回,并查看是什么原因导致了问题。

根据,通过设置阴影偏移量添加阴影是一项昂贵的操作,会影响性能

核心动画必须进行屏幕外传递,以首先确定 在渲染投影之前,视图的精确形状 这是一项相当昂贵的手术

您可以改为使用:

myTextView.layer.shadowPath = [[UIBezierPath bezierPathWithRect:view.bounds] CGPath];

我输入了您提供的代码,它不会影响视图。它看起来像一个普通的UITextView。它应该这样做吗?我对CALayers之类的东西不太熟悉,所以我不确定所有东西应该如何协同工作。这段代码与通用的
UIView
一起工作,但奇怪的是,与
UITextView
不一起工作。我不知道为什么。要解决您的问题,只需将
UITextView
添加到大小相同的
UIView
中,然后将阴影添加到
UIView
对象中即可。啊,好的。谢谢你的澄清。我几乎没有使用这个代码,因为出于某种原因,它的评级非常低。但是它工作得很好!tnx
myTextView.layer.shadowPath = [[UIBezierPath bezierPathWithRect:view.bounds] CGPath];