2016-06-13 7 views
0

Image of the pixelated text in the UITextViewUITextView в Swift2.2 показывает пиксельный текст, как восстановить потерянное разрешение?

У кого-нибудь есть предложения? Изображение проблемы находится в ссылке, которую можно щелкнуть выше.

Код:

struct Views { 
    static var name_field: UITextView? 
} 

В viewDidLoad()

Views.name_field = UITextView(frame: CGRectMake(0, 0, name_field_width, 50)) 
    Views.name_field!.textAlignment = NSTextAlignment.Center 
    Views.name_field!.font = UIFont.systemFontOfSize(15) 
    Views.name_field!.autocorrectionType = UITextAutocorrectionType.No 
    Views.name_field!.keyboardType = UIKeyboardType.Default 
    Views.name_field!.returnKeyType = .Done 
    Views.name_field!.delegate = self 

Вызов этой функции стиль это

styleIt(Views.name_field!)

Добавляет нижний стиль границы, а затем устанавливает шрифт и т. д.

func styleIt(target: UITextView){ 
    target.layer.backgroundColor = UIColor.clearColor().CGColor 

    let _border = CAShapeLayer() 
    _border.backgroundColor = UIColor.whiteColor().CGColor 
    _border.frame = CGRectMake(0, CGRectGetHeight(target.frame) - 1.0, CGRectGetWidth(target.frame), 1.0) 

    _border.shadowColor = UIColor.whiteColor().CGColor 
    _border.shadowOffset = CGSize(width: 3, height: 3) 
    _border.shadowOpacity = 0.23 
    _border.shadowRadius = 4 

    target.layer.addSublayer(_border) 

    target.font = UIFont(name: "ClementePDaa-Hairline", size: 24) 
    target.textColor = UIColor.whiteColor() 
    target.textContainerInset = UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0) 
    applyPlaceholderStyle(target, placeholderText: _SEARCH_TEXT) 

    target.returnKeyType = .Done 
    target.frame = CGRectIntegral(target.frame) 

    target.layer.shouldRasterize = true 
    _border.shouldRasterize = true 
    target.textInputView.layer.shouldRasterize = true 
} 

Это UITextView является подвид из search_field, который просто UIView

search_field!.addSubview(Views.name_field!)

+0

Вы используете опцию shouldRasterize на слое этикетки/TextView? Becasue делает это испортит содержимое UILabels и TextViews. – Dershowitz123

+0

@ Dershowitz123 Я добавил «textField.shouldRasterize = true» после добавления его в качестве подпрограммы к основному виду. Кажется, это не работает. Если вы не имеете в виду фактическое текстовое поле в представлении? Изменить: я добавил «textField.textInputView.layer.shouldRasterize = true», он все еще не полностью восстанавливает свое полное разрешение. –

+0

@ originaluser2 добавил код, извините за это. –

ответ

0

Ваше мнение текст смазан, поскольку кадр с помощью плавающих чисел. Чтобы заставить значение целых чисел для вашего кадра просто сделать:

textView.frame = CGRectIntegral(textView.frame)

+0

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

+0

@ Dershowitz123 Я добавил код, и я попробовал этот вариант, поскольку он не работал:/ –

+0

Вместо того, чтобы нажимать 'UITextView', почему бы вам не попробовать настроить свой собственный вид, который вы создали? И удалите 'target.layer.shouldRasterize = true'. – Dershowitz123

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

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