2016-11-07 4 views
1

Я новичок в NSLayoutConstraint withVisualFormat. Я хочу поместить метку в правый угол. Но из-за ограничения я добавил его влево. Пожалуйста, найдите образец кода и изображения. Еще одна вещь, которую я хочу, чтобы метка была 8 пикселей слева и справа. Если он имеет больше текста, он также нуждается в расширении.Позиция UILabel справа - NSLayoutConstraint withVisualFormat

let views : [String : Any] = ["title" : articleTitleLabel, "body" : articleDescriptionLabel, "image" : articleImageView ,"footer" : articleAuthorLabel] 

    let widthConstraints = NSLayoutConstraint.constraints(withVisualFormat: "H:|-5-[image(130)]-5-[title]-5-|", 
                  options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: views) 
    let widthConstraints1 = NSLayoutConstraint.constraints(withVisualFormat: "H:|-5-[image]-5-[body]-5-|", 
                  options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: views) 

    let heightConstraints = NSLayoutConstraint.constraints(withVisualFormat: "V:|-5-[title]-5-[body]-5-[footer]-(>=5)-|", 
                  options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: views) 

    let heightConstraints1 = NSLayoutConstraint.constraints(withVisualFormat: "V:|-5-[image(130)]-(>=5)-|", 
                  options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: views) 


    NSLayoutConstraint.activate(widthConstraints) 
    NSLayoutConstraint.activate(heightConstraints) 
    NSLayoutConstraint.activate(widthConstraints1) 
    NSLayoutConstraint.activate(heightConstraints1) 

Скриншот выпуска:

enter image description here

ответ

0

Чтобы расположить articleAuthorLabel в нижнем правом углу, вам необходимо добавить некоторые горизонтальные ограничения на него.

Попробуйте это:

let authorConstraints = NSLayoutConstraint.constraints(withVisualFormat: "H:[footer]-5-|", 
                 options: NSLayoutFormatOptions(rawValue: 0), 
                 metrics: nil, views: views) 
NSLayoutConstraint.activate(authorConstraints) 

Для того, чтобы убедиться, что метка не протиснуться мимо левой стороны, вы можете использовать:

"H:|-(>=5)-[footer]-5-|" 

И убедитесь, что ваш приоритет содержания обниматься достаточно высока потяните за поля этикеток.

Или вы можете это сделать и выровнять по правому краю текста:

"H:|-5-[footer]-5-|" 
+0

Пробовал. Не работает. Мой вопрос - позиция в правом углу. Теперь он расположен в левом углу – Vinodh

+0

Извините, см. Мои правки. – stevekohls

+0

@ Винод вы могли заставить его работать? – stevekohls

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