首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在iOS中的UIView中添加角半径和阴影

如何在iOS中的UIView中添加角半径和阴影
EN

Stack Overflow用户
提问于 2019-03-22 00:07:13
回答 2查看 0关注 0票数 0
在此输入图像描述
在此输入图像描述

自动布局(约束)如何使圆角半径和视图的阴影(即使认为有一些子视图也可以)和方法写的代码。如果我在viewdidload中编写代码,viewDidAppear,我不能得到精确的角半径和阴影?

这是我在viewWillLayoutSubview中执行的代码,我可以获得角半径,但我无法获得阴影效果。如果我删除view.layer.masksToBounds = true我可以获得阴影,但它不仅仅是基本视图的角落而不是它的子视图。

代码语言:javascript
复制
view.layer.cornerRadius = 10
view.layer.masksToBounds = true

view.layer.borderWidth = 1.0
view.layer.borderColor = UIColor.black.cgColor

view.layer.shadowColor = UIColor.black.cgColor
view.layer.shadowOffset = CGSize(width: 3, height: 3)
view.layer.shadowOpacity = 0.7
view.layer.shadowRadius = 4.0
EN

回答 2

Stack Overflow用户

发布于 2019-03-22 08:22:02

这取决于某些条件

1.如果您从故事板设置了autolayout约束并且视图的大小(高度,宽度)是固定的,那么您可以在viewDidLoad中设置角半径。

2.如果从故事板设置自动布局约束并且视图的大小(高度,宽度)是比例,那么设置角半径的安全位置是viewWillLayoutSubview。

3.如果您以编程方式设置约束,那么也可能存在某些条件.viewWillAppear,viewDidAppear,viewWillLayoutSubview,viewDidLayoutSubview都可以根据您的具体情况进行操作。

票数 0
EN

Stack Overflow用户

发布于 2019-03-22 09:56:21

无法设置

代码语言:javascript
复制
layer.masksToBounds = true 

并获得阴影,因为maskToBounds将剪切落在视图边界的所有内容。并且因为阴影被放置在边界上所以它也会剪辑。唯一的方法是让所有子视图远离边界。

还有一种方法。

将您的视图添加为另一个视图的子视图,我们将其称为父视图。使用阴影向父视图添加阴影

代码语言:javascript
复制
 layer.cornerRadius = 10
 layer.masksToBounds = false

在您的视图中添加

代码语言:javascript
复制
 layer.cornerRadius = 10
 layermasksToBounds = true 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档