为笔尖启动的视图添加边框和阴影
Posted
技术标签:
【中文标题】为笔尖启动的视图添加边框和阴影【英文标题】:Adding a border and shadow to a nib initiated view 【发布时间】:2013-07-19 12:53:14 【问题描述】:我正在创建 UIViewController 的子类,当用户按下按钮时,它将启动并添加来自另一个 UIViewController 子类的视图。
在添加的视图中,我有一个 UIWebView 和 UIButton 实例(用于关闭弹出窗口)。
因为是弹窗,所以想给UIWebView加边框和阴影,但是由于是nib发起的,不知道怎么修改绘图代码。
有什么帮助吗? :)
【问题讨论】:
【参考方案1】:看看使用视图的CALayer
。
添加边框:
myView.layer.borderWidth = 1.f;
myView.layer.borderColor = [UIColor blackColor].CGColor;
添加阴影也有类似的方法:
myView.layer.shadowColor = [UIColor blackColor].CGColor;
myView.layer.shadowOffset = CGSizeMake(4.f, 4.f);
myView.layer.shadowRadius = 4.f;
myView.layer.shadowOpacity = 0.5f;
myView.layer.shouldRasterize = YES;
您需要将 Quartz 框架添加到您的目标中,并将标头导入控制器的 .m 文件中:
#import <QuartzCore/QuartzCore.h>
【讨论】:
啊哈!所以它已经包含在 UIView 类中了!多谢! :) 但是最后一行有什么不同呢?位图还是没有位图? 将shouldRasterize
属性设置为YES
可以提高添加阴影的性能。【参考方案2】:
您可以通过这种方式为任何控件添加Border和Shadow。您还可以设置Border的Width ,也可以做成圆角。
CALayer * l1 = [viewPopup layer];
[l1 setMasksToBounds:YES];
[l1 setCornerRadius:5.0];
// Add a border
[l1 setBorderWidth:5.0];
[l1 setBorderColor:[[UIColor darkGrayColor] CGColor]];
// Add a shadow
[l1 setShadowColor:[[UIColor darkGrayColor] CGColor]];
[l1 setShadowOpacity:5.0];
// You can more methods for shadow
只需将viewPopup
替换为您的控件即可。
注意:-别忘了导入<QuartzCore/QuartzCore.h>
【讨论】:
以上是关于为笔尖启动的视图添加边框和阴影的主要内容,如果未能解决你的问题,请参考以下文章