【发布时间】:2012-12-04 15:01:55
【问题描述】:
我希望我的 UITextView 具有附加图片中的特殊阴影边框。
如何在不定位背景图片的情况下在 xcode 4.4 中实现它?
【问题讨论】:
标签: ios xcode cocoa-touch uitextview
我希望我的 UITextView 具有附加图片中的特殊阴影边框。
如何在不定位背景图片的情况下在 xcode 4.4 中实现它?
【问题讨论】:
标签: ios xcode cocoa-touch uitextview
我不确定这是否只能通过自定义绘图(即 Quartz/Core Graphics)实现。 如果可能的话,我仍然会使用预渲染的图像。请查看this post。
但这可能接近预期的效果:
[yourTextView.layer setBackgroundColor: [[UIColor whiteColor] CGColor]];
[yourTextView.layer setBorderColor: [[UIColor grayColor] CGColor]];
[yourTextView.layer setBorderWidth: 1.0];
[yourTextView.layer setCornerRadius: 8.0f];
[yourTextView.layer setMasksToBounds: YES];
别忘了导入:
#import <QuartzCore/QuartzCore.h>
【讨论】:
这是我为实现外观所做的工作:
创建一个容器视图,例如 m 宽 x n 高。设置为clip subviews,并给它的CALayer一个圆角半径
使用矩形视图创建文本框,设置圆角半径,并设置其原点。y 为一些小数字 - 比如说 8。调整高度使其偏移 2 倍
创建一个使用 CAGradient 层的 UIView 子类,并让渐变使用从顶部开始的线性渐变,并随着 y 的增加而变浅。
如上,创建另一个渐变视图,渐变从底部开始向上移动(白色),或者只使用纯白色视图
将第一个渐变视图添加到容器视图,然后是第二个,然后是文本框。
第二个渐变视图需要淡化成清晰的颜色,这样它就不会阻挡它下面的视图(你可以玩弄两个“效果”视图的顺序。
【讨论】: