2015-06-03 2 views
2

У меня есть UIImageView и UILabel. Ярлык имеет большую высоту, чем изображение, поэтому я хочу выравнивать положение Y по центру для обоих.Центр выравнивания UIImageview и большой UILabel AutoLayout

Вот оригинальный случай:

enter image description here

Когда я применяю Center Y от изображения на этикетке, содержание этикетки обрезано.

enter image description here

Пожалуйста, может кто-то наставит меня для правильных ограничений ... Спасибо!

ответ

1

Storyboard Image

Я использую установку выше в своем раскадровке. A UIImageView слева и UITextView справа; настройки в UIViewController. Настройка I мои ограничения, как это:

UIImageView

  • Ширина Равно: // Все, что вы хотите
  • Рост Равно: // Все, что вы хотите
  • Align Center Y: Text View
  • Leading Место для красивого и яркого осмотра: 16
  • Пробел до текста Вид: 8

UITextView

  • Align Center Y: Просмотр изображения
  • Продольный Космические SuperView: 16
  • Ведущее пространство для просмотра изображения: 8
  • Top Space в Top Layout Guide: 16
  • Высота Равно : // Все что пожелаете; это изменится

Ограничение центра Y будет поддерживать UIImageView с центром в UITextView. Ограничение верхнего пространства на UITextView - это то, что установит вертикальное позиционирование для видов. Ограничение высоты на UITextView - это место, в которое входит динамическая высота. Сделайте выход для контроллера вида для UITextView и ограничения высоты текста. Также укажите себя как делегат текстового вида.Это позволит нам изменять все динамически, поскольку текст в текстовом представлении изменяется.

class ViewController: UIViewController, UITextViewDelegate { 
    @IBOutlet weak var textView: UITextView! 
    @IBOutlet weak var textViewHeight: NSLayoutConstraint! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.textView.delegate = self 
    } 

    func textViewDidChange(textView: UITextView) { 
     // Ask the text view how much size it needs to fit its content if it has to 
     // fit in its current width but can grow vertically as much as it needs 
     let sizeToFitIn = CGSizeMake(textView.bounds.size.width, CGFloat(MAXFLOAT)) 
     let newSize = self.textView.sizeThatFits(sizeToFitIn) 
     self.textViewHeight.constant = newSize.height 
    } 
} 
+0

я выровнен ImageView с верхним расположением, а, именно поэтому ImageView не смог выровнять центр с ярлыком. Спасибо, что помогли мне. – NightFury

0

Я не использую ограничение центра, если я хочу что-то сосредоточить, потому что он не работает для меня всегда, как вы сказали. Что я делаю, я добавляю ограничение для ведущего пространства и конечного пространства для X-центрирования и верхнего пространства и нижнего пространства для центрирования Y.

Это будет центр вашей метки с пространством 30px с левой и с правой стороны. Если вы хотите использовать все пространство просто сделать константу 0. (для Y просто изменить другие два -> Примечание для активации ограничения вы должны нажать на красную линию)

enter image description here

+0

Спасибо за ответ, но это не поможет в моем случае .. – NightFury

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