XXNibBridge icon indicating copy to clipboard operation
XXNibBridge copied to clipboard

property IBOutlet NSLayoutConstraint nil

Open SANZOGENJO opened this issue 7 years ago • 1 comments

since version 2.3 ,if some of one view's subviews is Custom,the property IBOutlet NSLayoutConstraint width or height will be nil,if i change the property to strong, it will not work set
.constant

SANZOGENJO avatar Jul 13 '16 03:07 SANZOGENJO

if (placeholderView.constraints.count > 0) {
  for (NSLayoutConstraint* constraint in placeholderView.constraints) {
    if ([UIDevice currentDevice].systemVersion.floatValue < 10) {
      if (constraint.firstItem == placeholderView) {
        [constraint setValue:realView forKey:@"firstItem"];
      }
      if (constraint.secondItem == placeholderView) {
        [constraint setValue:realView forKey:@"secondItem"];
      }
    } else {
      Ivar referenceItem =
      class_getInstanceVariable(NSLayoutAnchor.class, "_referenceItem");
      id firstAnchorItem = object_getIvar(
                                          [constraint valueForKey:@"firstAnchor"], referenceItem);
      if (firstAnchorItem == placeholderView) {
        object_setIvar([constraint valueForKey:@"firstAnchor"], referenceItem,
                       realView);
      }
      if ([constraint valueForKey:@"secondAnchor"] != nil) {
        id secondAnchorItem = object_getIvar(
                                             [constraint valueForKey:@"secondAnchor"], referenceItem);
        if (secondAnchorItem == placeholderView) {
          object_setIvar([constraint valueForKey:@"secondAnchor"],
                         referenceItem, realView);
        }
      }
    }
  }
  [realView addConstraints:placeholderView.constraints];
}

erlangzhang avatar Jan 11 '17 10:01 erlangzhang