按鈕的比例調整大小我需要佈置5個按鈕作爲該圖像中:在UIStackView
我需要他們按比例調整在不同設備上。
我有一個方法設置了5個按鈕的視圖中的代碼。
UIStackView *stackView = [[UIStackView alloc]init];
// Add buttons to stackView (buttons are initialised)
[stackView addArrangedSubview:_button1];
[stackView addArrangedSubview:_button2];
[stackView addArrangedSubview:_button3];
[stackView addArrangedSubview:_button4];
[stackView addArrangedSubview:_button5];
stackView.translatesAutoresizingMaskIntoConstraints = false;
[self.view addSubview:stackView];
stackView.axis = UILayoutConstraintAxisVertical;
stackView.distribution = UIStackViewDistributionFillEqually;
stackView.spacing = 5;
//Layout Constraints for stackView
[stackView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = true;
[stackView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = true;
// 80% of screen height should be used for buttons
CGFloat screenHeightAvailableForButtons = 80/100;
// Calculate multiplier for height of the buttons (5 buttons)
CGFloat buttonMultiplier = screenHeightAvailableForButtons /5;
// 25% of screen width should be used for buttons
CGFloat screenWidthMultiplier = 25/100;
[_button1.widthAnchor constraintEqualToAnchor:self.view.widthAnchor multiplier: screenWidthMultiplier].active = true;
[_button1.heightAnchor constraintEqualToAnchor: self.view.heightAnchor multiplier: buttonMultiplier].active = true;
[_button2.widthAnchor constraintEqualToAnchor:self.view.widthAnchor multiplier: screenWidthMultiplier ].active = true;
[_button2.heightAnchor constraintEqualToAnchor: self.view.heightAnchor multiplier: buttonMultiplier].active = true;
[_button3.widthAnchor constraintEqualToAnchor:self.view.widthAnchor multiplier: screenWidthMultiplier ].active = true;
[_button3.heightAnchor constraintEqualToAnchor: self.view.heightAnchor multiplier: buttonMultiplier].active = true;
[_button4.widthAnchor constraintEqualToAnchor:self.view.widthAnchor multiplier: screenWidthMultiplier ].active = true;
[_button4.heightAnchor constraintEqualToAnchor: self.view.heightAnchor multiplier: buttonMultiplier].active = true;
[_button5.widthAnchor constraintEqualToAnchor:self.view.widthAnchor multiplier: screenWidthMultiplier ].active = true;
[_button5.heightAnchor constraintEqualToAnchor: self.view.heightAnchor multiplier: buttonMultiplier].active = true;
此代碼返回空白視圖。我是否錯誤地使用了方法?
我無法弄清楚我做錯了什麼。我需要在目標c中以編程方式完成此操作。
感謝
請詳細說明「我需要他們在不同設備上按比例調整。」就像「如果堆棧視圖高度是xxx按鈕偏移量是xx,那麼按鈕高度應該是xxx」,並且與寬度類似。 – BangOperator
@BangOperator我需要它看起來像是在所有設備上提供的圖像,我需要以編程方式而不是IB。因此,在橫向模式下,stackView.height = screen.height從頂部和底部減去20個點,button.height =每個按鈕之間5點間距的stackView的1/5。和stackView.width = screen.width和1/4距離左邊緣20點,button.width = stackView.width。希望有道理 – sharp