2017-08-03 133 views
0

我一直試圖用3個自定義視圖(PCSimpleDescriptionView)實現視圖(PCHorizo​​ntalAdjustableView)。在UIStackView中自定義子視圖的寬度相同

的PCSimpleDescriptionView具有垂直UIStackView與垂直UIStackView內部2層的標籤是這樣的:

PCSimpleDescriptionView

,其具有用於顯示3個PCSimpleDescriptionViews水平UIStackView的PCHorizo​​ntalAdjustableView(顏色加入到突出3次)。

enter image description here

,我得到的結果是這樣的:

Simulator iPhone5S

我會像理想是顯示的可用空間標籤3個大小相等的PCSimpleDescriptionViews。

示例項目上傳here

任何想法,我應該怎麼做才能實現這一目標?

回答

1

你的錯誤是- (void)setup方法

你從廈門國際銀行如子視圖 [[NSBundle mainBundle] loadNibNamed:@"PCHorizontalAdjustableView" owner:self options:nil]; [self addSubview:self.view];

您需要添加約束到這個新的子視圖或控制幀- (void)layoutSubviews方法

添加此功能,您添加自定義視圖視圖的類(PCHorizo​​ntalAdjustableView,PCSimpleDescriptionView)`

- (void)layoutSubviews { 
    [super layoutSubviews]; 

    self.view.frame = self.bounds; 
    [self.view setNeedsLayout]; 
    [self.view layoutSubviews]; 
} 

- (void)didMoveToWindow { 
    [super didMoveToWindow]; 

    [self setNeedsLayout]; 
    [self layoutIfNeeded]; 
}` 

固定碼project

Result

+0

謝謝您的解決方案。我剛剛添加self.view.frame = self.bounds;在layoutSubviews中解決這個問題。其他方法似乎並不需要。 – jarora

+0

但是佈局階段發生時不應該自動設置正確的幀? – jarora

+0

您必須在addSubview函數之後添加約束。它會自動解決。 – LLIAJLbHOu

相關問題