我在一个应用程序上工作了几年,收到了一个简单的设计请求:在UIView上圆角并添加下拉阴影.如下所示.

我想要一个定制的UIView.:我只想要一个有圆角和光影(没有照明效果)的空白白色视图.我可以逐一处理这些问题,但通常会发生clipToBounds/maskToBounds冲突.

enter image description here

推荐答案

以下代码段将边框、边框半径和阴影添加到v,即UIView:

// border radius
[v.layer setCornerRadius:30.0f];

// border
[v.layer setBorderColor:[UIColor lightGrayColor].CGColor];
[v.layer setBorderWidth:1.5f];

// drop shadow
[v.layer setShadowColor:[UIColor blackColor].CGColor];
[v.layer setShadowOpacity:0.8];
[v.layer setShadowRadius:3.0];
[v.layer setShadowOffset:CGSizeMake(2.0, 2.0)];

SWIFT 5版本:

// border radius
v.layer.cornerRadius = 30.0

// border
v.layer.borderColor = UIColor.lightGray.cgColor
v.layer.borderWidth = 1.5

// drop shadow
v.layer.shadowColor = UIColor.black.cgColor
v.layer.shadowOpacity = 0.8
v.layer.shadowRadius = 3.0
v.layer.shadowOffset = CGSize(width: 2.0, height: 2.0)

您可以根据需要调整设置.

此外,将QuartzCore框架添加到您的项目中,并:

#import <QuartzCore/QuartzCore.h>

关于masksToBounds,请参见my other answer.


Note

这可能并不是在所有情况下都有效.如果您发现此方法与您正在执行的其他绘图操作有冲突,请参见this answer.

Ios相关问答推荐

Swift addtarget方法的默认参数不生效

SwiftUI中的视频时间轴

SWIFT图表轴订购问题

使用SWIFT传输表示时的条件文件表示格式

clang:错误:SDK 路径中不包含libarclite

在iOS中使用Swift,即时更改应用语言后,立即改变外观会出现问题

iOS上从谷歌云存储API不断收到网络连接已丢失的错误信息

NumberFormatter 无法使用 Xcode 15.0 beta 正确识别 iOS 17 beta 中的 Locale 货币设置

List touch Tabbar 时 SwiftUI Tabbar 消失

SwiftUI 解除 .alert 弹出 NavigationView

Swift 共享数据模型在页面之间进行通信.这个怎么运作

如何在保持纵横比的同时zoom UIView 的内容以适应目标矩形?

关闭所有打开的视图控制器的单个函数

Xcode 4.1 致命错误:自构建预编译头文件后修改了 stdlib

用 PC 调试 ipad safari

如何在 OS X 或 iOS(不使用格式塔)中确定运行时的操作系统版本?

什么是伞头?

如何识别导航堆栈中的前一个视图控制器

在 iOS 上编写文件

Parse for iOS:try 运行应用程序时出错