2016-12-06 4 views
2

Я искал за 4 часа до написания моего вопроса, ни один из ответов, которые я видел в Интернете, не разрешает эту проблему.iOS UILabel размер вопрос

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

Я до сих пор не понимаю, где это приходит, я попытался с помощью обычного текста, и я попытался объяснить строки, и до сих пор дают это дополнительное дополнение:

Скриншот: http://imgur.com/Fldcodl

Я пытался подкласс этикетки со следующим:

var textInsets = UIEdgeInsets.zero { 
    didSet { invalidateIntrinsicContentSize() } 
} 


override var bounds:CGRect { 
    get { 
     return super.bounds 
    } 
    set { 
     super.bounds = newValue 
     if (self.preferredMaxLayoutWidth != super.bounds.size.width) { 
      self.preferredMaxLayoutWidth = super.bounds.size.width; 
      self.setNeedsUpdateConstraints() 
     } 

    } 
} 

override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect { 
    let insetRect = UIEdgeInsetsInsetRect(bounds, textInsets) 
    let textRect = super.textRect(forBounds: insetRect, limitedToNumberOfLines: numberOfLines) 
    let invertedInsets = UIEdgeInsets(top: -textInsets.top, 
             left: -textInsets.left, 
             bottom: -textInsets.bottom, 
             right: -textInsets.right) 
    return UIEdgeInsetsInsetRect(textRect, invertedInsets) 
} 

override func drawText(in rect: CGRect) { 
    super.drawText(in: UIEdgeInsetsInsetRect(rect, textInsets)) 
} 

Даже со значениями для верхнего левого правого нижнего набора до 0 Я до сих пор получаю это раздражают верхний отступ.

Любая идея, как решить эту проблему?

Спасибо!

+0

Вы пробовали размерToFit? – danh

+0

Что вам не нравится? Я не вижу «верхнего заполнения». – matt

+0

@ danh да это не сработало – Khalil

ответ

0

Предполагая, что вы хотите удалить пустое пространство вокруг своей метки (не совсем ясно из вашего вопроса).

Ваш ярлык имеет желтый фон, маржа, которую вы пытаетесь удалить, находится за пределами метки, поэтому никакое подклассы не удалит ее.

Способ, которым вы добавляете ярлык на экран (в коде или построителе интерфейса, с помощью ограничений или фреймов) - это то, что определяет эти поля, то есть то, что вам нужно настроить, чтобы исправить свои поля.

+0

Спасибо за ответ, я добавил желтый фон, чтобы вы, ребята, могли видеть, о чем я говорю, это не белое пространство, а пробел - это view, моя проблема связана с дополнительным пространством над текстом, который находится в желтом. Желтый - это фон Ярлыка, это не нужно, я хочу, чтобы вершина остановилась прямо на краю текста без лишних 4 очков. – Khalil

+0

Я изменил изображение, теперь яснее, какое пространство я говорю о I Угадай – Khalil

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