ios - 嵌入式 UITextView 的圆角——什么是(错误地)保持圆角不透明?
问题描述
注意:为了清楚起见,我在找出解决方案后对其进行了编辑(如下)。
在界面生成器中,我在另一个 UIView 中嵌入了一个 UIView,并将它们链接到各自的 UIViewController、EmbeddedViewController 和 MainViewController。然后我将 UITextView 放入嵌入式 UIView 并在 EmbeddedViewController 中创建了对它的引用。
在 MainViewController 我以编程方式设置view.backgroundColor = UIColor.lightGray
. 在 EmbeddedViewController 我设置textView.backgroundColor = UIColor.white
和textView.layer.cornerRadius = 50
. 使用这些颜色,看起来角落没有被圆润。但是当我设置 时textView.backgroundColor = UIColor.red
,很明显舍入有效,但某些东西的角落是不透明的白色。问题是,我不知道那是什么东西,在尝试了几种可能性之后,我仍然不知道我需要修复什么。
之前的问题似乎都没有解决这个特定的问题(即嵌入式 UIView 中 UITextView 的圆角周围不透明),但如果我错过了什么,请批评我不够努力。否则,我会对界面构建器或编程解决方案感到满意。
这是一张图片(根据请求),其中textView.backgroundColor = UIColor.red
:
解决方案
问题是我错误地认为我嵌入了一个 UITextView,而实际上我嵌入了一个包含UITextView 的 UIView。所以实际上不是要处理两个视图,而是三个:MainViewController 的视图、EmbeddedViewController 的视图和 EmbeddedViewController 的 textView。所以为了绕过 UITextView 的角落,这里有一个合理的方法:
在 EmbeddedViewController 中,设置view.layer.cornerRadius = 50
和设置view.clipsToBounds = true
。由于 UITextView 是嵌入式 UIView 的子视图,因此 textView 被裁剪到视图的边界。
这样,上面的白色区域就不再存在了。
推荐阅读
- javascript - 为运行项目创建脚本
- java - startActivity 还有一个用于Bundle的可选参数,使用此方法并在目标活动中检索bundle的正确方法是什么
- tonejs - 如何替换tone js采样器中的声音?
- java - 将文件上传到 Dropbox 中的压缩文件夹
- angular - 使用带有 *ngif 的 Mat-icons 和 Mat-content - angular 12
- node.js - 材料设计图标不适用于 npm
- angular - 使用 client_secret 密钥(客户端凭据流)Angular 应用程序获取访问令牌 Azure AD
- python - 等待值然后停止服务器,在'werkzeug.server.shutdown'被弃用并删除之后
- python-3.x - python propmpt-toolkit 简单输入着色
- regex - Python 强制正则表达式在某些情况下失败