2016-11-18 7 views
2

Привет, я хочу установить тень UItextView, как показано на картинке ниже.Как установить тень границы UItextview?

enter image description here

Я попытался ниже код, но он не дает мне тот же результат, а также сделать текст UITextView как тень.

self.tv_comments.layer.shadowRadius = 5.0 
self.tv_comments.layer.borderColor = UIColor.gray.cgColor 
self.tv_comments.layer.borderWidth = 1 
self.tv_comments.layer.shadowColor = UIColor.gray.cgColor 
self.tv_comments.layer.shadowOffset = CGSize(width: 2.0, height: 2.0) 
self.tv_comments.layer.shadowOpacity = 1.0 
self.tv_comments.textColor = UIColor.black 

выше кода приводит мне этот вид, который не требуется

enter image description here

+2

Вы можете попробовать обернуть UITextView с UIView и установить тень UIView вместо –

ответ

1

Ваш код имеет два вопроса:

1) Пограничные

Ваш желаемый результат не имеет границы. Поэтому не устанавливайте его.

2) Просмотр клипов тени

По умолчанию в UIView клипы его содержание в его bounds. В результате вы не видите ничего за пределами границ (тень). Установить clipsToBounds в false.

Рабочий пример:

// Test view setup 
let parent = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: 200.0)) 
parent.backgroundColor = UIColor.white 
let tv_comments = UITextView(frame: CGRect(x: 50.0, y: 50.0, width: 100.0, height: 100.0)) 
tv_comments.text = "Test Test Test Test Test Test " 
tv_comments.backgroundColor = UIColor.white 
parent.addSubview(tv_comments) 

// replace your code with the code below 
tv_comments.clipsToBounds = false 

tv_comments.layer.shadowRadius = 5.0 
tv_comments.layer.shadowColor = UIColor.gray.cgColor 
tv_comments.layer.shadowOffset = CGSize(width: 2.0, height: 2.0) 
tv_comments.layer.shadowOpacity = 0.8 
tv_comments.textColor = UIColor.black 

Результат:

+0

не работает для меня – Techiee

+0

Протестировано на игровой площадке. Что «не работает» для вас? – shallowThought

+0

У меня есть текстовый вид с добавленными ограничениями. – Techiee

1

Ваш UITextView цвет фона ясный цвет? Если да, то установите цвет фона UITextView или UITextView цвет фона слоя. Поскольку установка UITextView цвет фона Nik будет установить его цвет фона слоя на ноль .so

self.tv_comments.backgroundColor = UIColor.white 
//or self.tv_comments.backgroundColor = UIColor.clear 
//self.tv_comments.layer.backgroundColor = UIColor.white 

self.tv_comments.layer.shadowRadius = 5.0 
self.tv_comments.layer.borderColor = UIColor.gray.cgColor 
self.tv_comments.layer.borderWidth = 1 
self.tv_comments.layer.shadowColor = UIColor.gray.cgColor 
self.tv_comments.layer.shadowOffset = CGSize(width: 2.0, height: 2.0) 
self.tv_comments.layer.shadowOpacity = 1.0 
self.tv_comments.textColor = UIColor.black 
1

Код ниже работает отлично

self.tv_comments.layer.shadowColor = UIColor.black.cgColor; 
self.tv_comments.layer.shadowOffset = CGSize(width: 1.0, height: 1.0) 
self.tv_comments.layer.shadowOpacity = 1.0 
self.tv_comments.layer.shadowRadius = 5.0 
self.tv_comments.layer.masksToBounds = false 

Однако, когда masksToBounds = false любые подуровни, которые выходят за пределы границ слоя будут видны. Итак, UITextField прокрутите текст за пределами слоя.

Если это проблема, просто добавьте еще UIView под своим UITextView и настройте слой для отображения тени.

 Смежные вопросы

  • Нет связанных вопросов^_^