В моем тестовом приложении я только что попробовал это:
let messageField = UITextView(frame: CGRect(x: 30, y: 40, width: view.frame.width - 60, height: 40))
var border = CALayer()
border.backgroundColor = UIColor.red.cgColor
border.frame = CGRect(x: 0, y: messageField.frame.height - 3, width: messageField.frame.width, height: 3)
messageField.layer.addSublayer(border)
view.addSubview(messageField)
И все заработало нормально. Странно, но хорошо. Цвет появился без проблем, но он прокручивается вместе с текстом. Но это может быть то, что вы хотите. Я пробовал это с разными высотами для поля сообщения тоже. Я не мог заставить это не показываться.
Если вы хотите, чтобы это работало и строка не прокручивалась с текстом, попробуйте этот ответ: { ссылка }