2015-06-10 2 views
1

Мое приложение использует пользовательскую ячейку для отображения продуктов в виде таблицы. Название продукта, когда оно использовалось на iPhone 5, заканчивалось, поэтому я установил его для обертывания , который не работает. Каждая ячейка заполняется в моем классе Customcell, используя приведенный ниже код. Я добавил пару строк на ярлык brandTxt, которые снова не работают.Word wrap не работает на моем UILabel

public func configure(#text: String?, placeholder: String) { 
    if (placeholder == "1") 
    { 
     brandItemLabel.text = text 
     brandItemLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping 
     brandItemLabel.numberOfLines = 2 
    } 
    else if (placeholder == "2") 
    { 
     brandSmallLabel.text = text 

    } 
    else if (placeholder == "3") 
    { 
     uomCodeLabel.text = text 

    } 
    else if (placeholder == "4") 
    { 
     codeLabel.text = text 

    } 
    else if (placeholder == "6") 
    { 
     var image = UIImage(named: "Blank.jpg") 
     if let url = NSURL(string: text!) { 
      if let data = NSData(contentsOfURL: url) { 
       image = UIImage(data: data) 
      } 
     } 
     var imgViewLbl = UIImageView(image: image) as UIImageView 
     imgViewLbl.frame = CGRect(x: 10, y: 4, width: 90, height: 90) 
     customView.addSubview(imgViewLbl) 
    } 
} 

Я также попытался с помощью ограничений, но это не работает либо

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

public func configure(#text: String?, placeholder: String) { 
    if (placeholder == "1") 
    { 
     brandItemLabel.text = text 
     brandItemLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping 
     brandItemLabel.numberOfLines = 2 
     brandItemLabel.preferredMaxLayoutWidth = 330 
    } 

UILabel еще не оборачивать, несмотря на эти изменения

ответ

3

Когда вы ориентируетесь IOS 6 до 8 или выше, вы должны явно установить атрибут preferredWidth на UILabel. Вы должны это сделать, если метка имеет более одной строки. См. Также preferredMaxLayoutWidth:

Таким образом, вам просто нужно указать это значение (в большинстве случаев полезно перейти в раскадровку, нажать на ярлык, перейти к «Инспектору размеров» и просто нажать «Явным» рядом с «Предпочтительным Ширина").

+0

Благодарим вас за ответ. Я установил предпочтительную ширину в явном виде в инспекторе размеров, а также добавил строку brandItemLabel.preferredMaxLayoutWidth = 330 в моем коде в Customcell, но, к сожалению, она все еще не обертывается. Может ли это быть связано с настройкой Customcell? – user616076

+0

Вы также установили ограничения на свой ярлык? Может показать нам скриншот или что-то еще? Вы также пытались настроить его на меньшее значение? Я думаю, preferredWidth работает только при использовании ограничений. Поэтому вам также нужно указать высоту (например, с ограничением) – Chuck

+0

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

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