2015-05-19 4 views
0

Я пытаюсь добавить ограничения tableViewCellSubViews, как так -Добавление ограничений в UITableViewCell contentView

import UIKit 

class SnakeTableViewCell: UITableViewCell { 

    var lessonViews = Array<UIView>() 

    override func awakeFromNib() { 
     super.awakeFromNib() 

     for var i = 0; i < 3; ++i 
     { 
      var view = UIView(frame: CGRectMake(CGFloat(i) * 110.0, 0.0, 100.0, 100.0)) 
      view.backgroundColor = UIColor.redColor() 
      view.setTranslatesAutoresizingMaskIntoConstraints(false) 
      self.contentView.addSubview(view) 
      lessonViews.append(view) 
     } 

     self.addConstraints(NSLayoutConstraint.constraintsForEvenDistributionOfViews(lessonViews, relativeToCenterOfView: self, vertically: false)) 

    } 

    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 

     // Configure the view for the selected state 
    } 

} 

И код ограничения -

extension NSLayoutConstraint { 

    class func constraintsForEvenDistributionOfViews(views:Array<UIView>,relativeToCenterOfView toView:UIView, vertically:Bool) -> Array<NSLayoutConstraint> { 
     var constraints = Array<NSLayoutConstraint>() 
     let attribute = vertically ? NSLayoutAttribute.CenterY : NSLayoutAttribute.CenterX 


     for (index, view) in enumerate(views) { 

      let multiplier = CGFloat(2*index + 2)/CGFloat(views.count + 1) 
      let constraint = NSLayoutConstraint(item: view, attribute: attribute, relatedBy: NSLayoutRelation.Equal, toItem:toView, attribute: attribute, multiplier: multiplier, constant: 0) 
      constraints.append(constraint) 
     } 
     return constraints 
    } 
} 

Вопрос заключается в том, что при добавлении ограничений, все subviews исчезает.

Любая идея, что я делаю неправильно?

Благодаря

+0

Что именно вы пытаетесь достичь, добавив эти ограничения? – Abdullah

+0

распространяет взгляды по горизонтали в ячейке – shannoga

+0

Имеет ли представления равные ширины? – Abdullah

ответ

0

множитель обычно равен 1. Постоянное переменный (горизонтальная или вертикальная сумма.

Вы можете настроить пользовательские ячейки, ее равномерно распределенных подвиды, и ее ограничение, все в пределах раскадровки. это гораздо проще сделать это в Interface Builder, чем создание и сдерживающие представления в коде.

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

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