2013-06-26 4 views
1

J'essaie d'utiliser le langage de formatage visuel pour ajouter une contrainte simple à une sous-classe UICollectionViewCell. Je veux juste qu'un UILabel soit épinglé au fond du contentView. Voici mon code init:Contrainte Autolayout pour épingler UILabel au bouton de UICollectionViewCell contentView

- (id)initWithFrame:(CGRect)frame { 
    self = [super initWithFrame:frame]; 
    if(self) { 
     _label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 128, 50)]; 
     _label.font = [[UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline1] fontWithSize:20.0]; 
     _label.lineBreakMode = NSLineBreakByWordWrapping; 
     _label.numberOfLines = 2; 
     _label.contentMode = UIViewContentModeBottom; 
     _label.backgroundColor = [UIColor blackColor]; 
     [self.contentView addSubview:_label]; 
     [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_label]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_label)]]; 
    } 
    return self; 
} 

est ici un message de journal d'exemple que je reçois quand je lance l'application.

Unable to simultaneously satisfy constraints. 
Unable to simultaneously satisfy constraints. 
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0xa3aa620 V:[UILabel:0xa3aa270]-(0)-| (Names: '|':UIView:0xa3aa010)>", 
    "<NSAutoresizingMaskLayoutConstraint:0x8b9b2d0 h=--& v=--& UILabel:0xa3aa270.midY == + 25>", 
    "<NSAutoresizingMaskLayoutConstraint:0x8b9bba0 h=--& v=--& V:[UILabel:0xa3aa270(50)]>", 
    "<NSAutoresizingMaskLayoutConstraint:0x8bd1290 h=-&- v=-&- UIView:0xa3aa010.height == STStationGroupCollectionViewCell:0xa3a9f40.height>", 
    "<NSAutoresizingMaskLayoutConstraint:0x8bb7ee0 h=--& v=--& V:[STStationGroupCollectionViewCell:0xa3a9f40(128)]>" 
) 

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0xa3aa620 V:[UILabel:0xa3aa270]-(0)-| (Names: '|':UIView:0xa3aa010)> 

Toute aide est grandement appréciée. Merci!

Répondre

2

Essayez d'ajouter:

_label.translatesAutoresizingMaskIntoConstraints = NO; 

Il semble être une contrainte autoresize essayant de fixer le Midy de l'étiquette.

Questions connexes