首页 > 解决方案 > 嵌入式 UITextView 的圆角——什么是(错误地)保持圆角不透明?

问题描述

注意:为了清楚起见,我在找出解决方案后对其进行了编辑(如下)。

在界面生成器中,我在另一个 UIView 中嵌入了一个 UIView,并将它们链接到各自的 UIViewController、EmbeddedViewController 和 MainViewController。然后我将 UITextView 放入嵌入式 UIView 并在 EmbeddedViewController 中创建了对它的引用。

在 MainViewController 我以编程方式设置view.backgroundColor = UIColor.lightGray. 在 EmbeddedViewController 我设置textView.backgroundColor = UIColor.whitetextView.layer.cornerRadius = 50. 使用这些颜色,看起来角落没有被圆润。但是当我设置 时textView.backgroundColor = UIColor.red,很明显舍入有效,但某些东西的角落是不透明的白色。问题是,我不知道那是什么东西,在尝试了几种可能性之后,我仍然不知道我需要修复什么。

之前的问题似乎都没有解决这个特定的问题(即嵌入式 UIView 中 UITextView 的圆角周围不透明),但如果我错过了什么,请批评我不够努力。否则,我会对界面构建器或编程解决方案感到满意。

这是一张图片(根据请求),其中textView.backgroundColor = UIColor.red

在此处输入图像描述

标签: iosuitextviewtransparencyrounded-cornersuicontainerview

解决方案


问题是我错误地认为我嵌入了一个 UITextView,而实际上我嵌入了一个包含UITextView 的 UIView。所以实际上不是要处理两个视图,而是三个:MainViewController 的视图、EmbeddedViewController 的视图和 EmbeddedViewController 的 textView。所以为了绕过 UITextView 的角落,这里有一个合理的方法:

在 EmbeddedViewController 中,设置view.layer.cornerRadius = 50和设置view.clipsToBounds = true。由于 UITextView 是嵌入式 UIView 的子视图,因此 textView 被裁剪到视图的边界。

这样,上面的白色区域就不再存在了。


推荐阅读