2013-06-26 26 views
1

我想使用視覺格式語言添加一個簡單的約束到UICollectionViewCell子類。我只想將UILabel固定到contentView的底部。這裏是我的初始密碼:Autolayout限制引腳UILabel按鈕的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; 
} 

下面是我運行應用程序時獲得的示例日誌消息。

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)> 

任何幫助,非常感謝。謝謝!

回答

2

嘗試增加:

_label.translatesAutoresizingMaskIntoConstraints = NO; 

好像有一個自動調整大小的約束試圖修復標籤的MIDY。