title: Proper way to implement updateConstraints
body: <p>Which part of my constraints I should update in updateConstraints method?
  Should I update all constraints related to my subclass?
  In my UIView subclass I usual add array of constraints related only on subviews that defined in this subclass.</p>
  
  <pre><code>@property(nonatomic, strong) NSArray *subclassConstraints;
  
  - (void)updateConstraints {
   [self removeConstraints:self.subclassConstraints];
   self.subclassConstraints = [self createConstraints];
   [self addConstraints:self.subclassConstraints];
   [super updateConstraints];
  }
  </code></pre>
  
  <p>So, there won't be any collisions between my constraints, super class constraints or subclass constraints.</p>
  
  <p>The question is: Should I update all self.subclassConstraints ?
  Or I should update only constraints that could be incorrect after some actions?</p>
  
  <p>If there is some view property, and some one can reset them or assign nil, I think that all related constraints will be incorrect, so I should update constraints of that view in every 
  <code>- (void)updateConstraints</code> call.</p>
  
  <p>f.e.</p>
  
  <pre><code>@property (nonatomic, strong) UIImageView *imageSubview;
  
  
  - (void)setImageSubview:(UIImageView *)imageView {
      if (![_imageView isEqual:imageView]) {
          _imageView = imageView;
          [self setNeedUpdateConstraints];
      }
  }
  
  - (void)updateConstraints {
      [self removeConstraints:self.imageViewConstraints];
      self.imageViewConstraints = [self createImageViewConstraints];
      [self addConstraints:self.imageViewConstraints];
      [super updateConstraints];
  }
  </code></pre>
  
  <p>So should I update all my constraints in updateConstraints method?
  Or should I update only some of them (f.e. like imageViewConstraints)</p>