2016-06-26 111 views
1

我正嘗試以編程方式創建UICollectionViewCell子類。我正在嘗試創建自動佈局支持。UICollectionViewCell以編程方式自動佈局

我想要一個UIView添加領先,頂部,尾部和底部約束的單元格的內容視圖。但是當我這樣做時,我的UIView's寬度和高度保持爲零。這裏是我的內initWithFrame方法代碼:

self.contentView.translatesAutoresizingMaskIntoConstraints = NO; 
    _someView = [[UIView alloc] initWithFrame:CGRectZero]; 
    _someView.translatesAutoresizingMaskIntoConstraints = NO; 
    [self.contentView addSubview:_someView]; 
    NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-2-[someView]-2-|" options:0 metrics:nil views:@{@"someView" : _someView}]; 
    NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-2-[someView]-2-|" options:0 metrics:nil views:@{@"someView" : _someView}]; 

    [self.contentView addConstraints:horizontalConstraints]; 
    [self.contentView addConstraints:verticalConstraints]; 

這裏是UI調試器的截圖: enter image description here

爲什麼這些限制是灰色的?

謝謝!

+1

所有您的約束安裝在您正在使用的任何大小類中?不確定可視調試器,但是IB/Storyboard有一個灰色的約束是項目中存在的約束,但沒有以編輯器顯示的任何大小類組合安裝(默認爲任何/任何) –

+1

控制器是否拋出任何佈局警告?同時在contentView上將'translatesAutoresizingMaskintoConstraints'設置爲NO可能會破壞單元格佈局系統。儘量不要這樣做。 –

+0

@WarrenBurton它的工作!謝謝!!!!請回答我的答案,我會投票並批准它! –

回答

4

contentViewUICollectionViewCell擁有這樣算下來

self.contentView.translatesAutoresizingMaskIntoConstraints = NO;

斷裂的細胞佈局的作用。

對於您擁有的任何子視圖並將其添加到內容視圖中,但對與您不屬於自己的視圖相混淆的操作來說,這樣做會非常合理,因此存在破壞佈局的風險。

相關問題