Objective c 像UITextField一样隐藏UITextview
我已经搜索了苹果的文档和其他关于堆栈溢出的帖子,但是我仍然无法在UITextView内部添加阴影。我想让它看起来像一个UITextField。这是我试过的代码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
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];