Удалить контур границы в текстовом поле при использовании UITextBorderStyle.RoundedRect - PullRequest
1 голос
/ 08 марта 2019

Я создаю текстовое поле с полупрозрачным фоновым цветом (40% белого), в котором я использую UITextBorderStyle.RoundedRect для закругленных углов и текстовых вставок.Это автоматически устанавливает контур серой границы, который я хочу удалить, но не могу найти, как.

Я пробовал следующее:

  • Установите layer.borderWidth в0: Нет эффекта
  • Установите layer.borderColor на clearColor: Нет эффекта
  • Установите для layer.borderColor тот же цвет, что и для фона, но создается впечатление, что дополнительная граница (40% белого), которая нарисована поверх предыдущей (серый).

Я уверен, что должен быть простой способ сделать это, но яне могу найти его.

Ответы [ 3 ]

1 голос
/ 08 марта 2019

Если вы установите UITextBorderStyle.RoundedRect для текстового поля, то текстовое поле добавит изображение на задний план текстового поля с серой рамкой. Вот почему свойства слоя не работают, потому что граница, которую вы видите, находится не на слое, а на изображении, добавленном в текстовое поле.

Вы можете проверить это путем отладки с помощью View Hierarchy. Там будет изображение, добавленное в текстовое поле. Изображение будет создано с цветом фона текстового поля с серой рамкой и capInsets, чтобы избежать растягивания границы.

Поэтому лучше всего установить текстовое поле на UITextBorderStyle.none. Затем создайте границу самостоятельно.

0 голосов
/ 08 марта 2019

Если вы хотите просто закруглить углы текстового поля, используйте

YourTextField.layer.cornerRadius = 8 // или любое значение, которое вы хотите установить

0 голосов
/ 08 марта 2019

Я думаю, что единственный способ добиться этого - установить стиль границы на .none (и самим закруглить углы). Затем вы можете установить стиль и цвет рамки так, как вы этого хотите (или вообще не иметь границы).

...