UITextView的特殊效果,没有背景图像

时间:2012-12-04 15:01:55

标签: ios xcode cocoa-touch uitextview

我希望我的UITextView具有特殊的阴影边框,如附图所示。

enter image description here

如何在不定位背景图像的情况下在xcode 4.4中实现它?

2 个答案:

答案 0 :(得分:0)

我不确定这是否只能通过自定义绘图(即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>

答案 1 :(得分:0)

以下是我为实现目标所做的工作:

  • 创建一个容器视图,例如m宽n高。将其设置为剪辑子视图,并为其CALayer提供角半径

  • 使用矩形视图创建文本框,设置角半径,并设置其原点。可以是一些小数字 - 例如8.调整高度使其偏移量为2倍

  • 创建一个使用CAGradient图层的UIView子类,并使渐变使用从顶部开始的线性渐变,随着y的增加变浅。

  • 如上所述,创建另一个渐变视图,其中渐变从底部开始向上移动(白色渐变)或者可能只使用纯白色视图

  • 将第一个渐变视图添加到容器视图,然后是第二个,然后是文本框。

第二个渐变视图需要淡化为清晰的颜色,以便它不会阻挡其下方的视图(您可以使用两个“效果”视图的顺序进行游戏。