2015-09-13 3 views
0

У меня есть метка в пользовательской ячейке, и она не будет изменяться. Вот код:Изменение размера метки в пользовательской ячейке в коде

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 



    let myCell2 = tableView.dequeueReusableCellWithIdentifier("privatecell1", forIndexPath: indexPath) as! YourPrivateControllerCell 

    myCell2.barfront1.frame.size.width = 200 
    myCell2.barfront1.layer.masksToBounds = true 
    return myCell2 
} 

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

myCell2.barfront1.frame.size.width = myCell2.barback1.frame.size.width * percent 

, но я не могу даже получить ярлык, чтобы изменить размер до 200.

ответ

1

Вы можете использовать ограничение и подключения ограничений с @IBOutlet, как это. Конечно, вы должны поместить это в YourPrivateControllerCell.

@IBOutlet weak var labelWidth: NSLayoutConstraint? = nil 

Тогда вызов следующего метода изменит ширину вашей метки.

labelWidth.constant = 200 

Удачи.

+0

Мое решение на самом деле не работает, потому что при прокрутке ограничение ширины для метки меняется и выходит из wack. Ваш ответ - правильное решение. Спасибо Джейсону !!!!!!!! – gooberboobbutt

0

Я получил его для работы. Вместо установки ширины метки я добавил ограничение ширины макета. Код:

myCell2.barfront1.addConstraint(NSLayoutConstraint(item: myCell2.barfront1, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: myCell2.barback1.frame.size.width * barwidth1[indexPath.row] * 0.01)) 

Теперь этикетка имеет разный размер для каждой строки.

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