Закругленные углы встраиваемого UITextView - что (неправильно) сохраняет непрозрачные углы? - PullRequest
0 голосов
/ 10 января 2019

ПРИМЕЧАНИЕ: я отредактировал это для ясности после выяснения решения (ниже).

В конструкторе интерфейсов я встроил UIView в другой UIView и связал их с соответствующими им UIViewControllers, EmbeddedViewController и MainViewController. Затем я поместил UITextView во встроенный UIView и создал ссылку на него в EmbeddedViewController.

В MainViewController я программно установил view.backgroundColor = UIColor.lightGray. В EmbeddedViewController я установил textView.backgroundColor = UIColor.white и textView.layer.cornerRadius = 50. Используя эти цвета, оказалось, что углы не были закруглены. Но когда я установил textView.backgroundColor = UIColor.red, было очевидно, что округление сработало, но углы чего-то были непрозрачными белыми. Проблема в том, что я не знаю, что это за нечто, и, попробовав несколько возможностей, я все еще не знаю, что мне нужно исправить.

Похоже, что ни один из предыдущих вопросов не касался этой конкретной проблемы (то есть непрозрачности вокруг закругленных углов UITextView во встроенном UIView), но если я что-то пропустил, пожалуйста, побейте меня за то, что я недостаточно старался , В противном случае я был бы доволен либо создателем интерфейса, либо программным решением.

Вот изображение (по запросу), в котором textView.backgroundColor = UIColor.red:

enter image description here

1 Ответ

0 голосов
/ 11 января 2019

Проблема заключалась в том, что я неправильно думал, что встроил UITextView, когда на самом деле я встроил UIView, в котором содержал UITextView. Таким образом, вместо двух представлений фактически существует три: представление MainViewController, представление EmbeddedViewController и текстовое представление EmbeddedViewController. Итак, чтобы закруглить углы UITextView, вот разумный подход:

В EmbeddedViewController установите view.layer.cornerRadius = 50 и установите view.clipsToBounds = true. Поскольку UITextView является подпредставлением встроенного UIView, textView обрезается до границ представления.

При этом вышеупомянутые белые области больше не будут.

...