MASViewAttribute.m 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //
  2. // MASViewAttribute.m
  3. // Masonry
  4. //
  5. // Created by Jonas Budelmann on 21/07/13.
  6. // Copyright (c) 2013 cloudling. All rights reserved.
  7. //
  8. #import "MASViewAttribute.h"
  9. @implementation MASViewAttribute
  10. - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute {
  11. self = [self initWithView:view item:view layoutAttribute:layoutAttribute];
  12. return self;
  13. }
  14. - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute {
  15. self = [super init];
  16. if (!self) return nil;
  17. _view = view;
  18. _item = item;
  19. _layoutAttribute = layoutAttribute;
  20. return self;
  21. }
  22. - (BOOL)isSizeAttribute {
  23. return self.layoutAttribute == NSLayoutAttributeWidth
  24. || self.layoutAttribute == NSLayoutAttributeHeight;
  25. }
  26. - (BOOL)isEqual:(MASViewAttribute *)viewAttribute {
  27. if ([viewAttribute isKindOfClass:self.class]) {
  28. return self.view == viewAttribute.view
  29. && self.layoutAttribute == viewAttribute.layoutAttribute;
  30. }
  31. return [super isEqual:viewAttribute];
  32. }
  33. - (NSUInteger)hash {
  34. return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute;
  35. }
  36. @end