我在一箇舊的iOS項目的工作,主要是用Objective C. 我在這些代碼行(一個對象設置爲屏幕的中間):的iOS leftSpacingConstraint相對於屏幕的高度
self.leftSpacingConstraint.constant = 250.0;
self.rightSpacingConstraint.constant = 250.0;
我想改變這些約束相對於屏幕寬度。我會怎麼做? 感謝
我在一箇舊的iOS項目的工作,主要是用Objective C. 我在這些代碼行(一個對象設置爲屏幕的中間):的iOS leftSpacingConstraint相對於屏幕的高度
self.leftSpacingConstraint.constant = 250.0;
self.rightSpacingConstraint.constant = 250.0;
我想改變這些約束相對於屏幕寬度。我會怎麼做? 感謝
拿上設備的屏幕寬度的外觀,並應用取決於你想要什麼,權利不變。
// iPhone 6Plus/6s Plust/7Plus = 414
// iPhone 6/6s/7/7s = 375
// iPhone 5/5s/SE = 325
// sizes: http://www.idev101.com/code/User_Interface/sizes.html
NSInteger screenWidth = (NSInteger)[[UIScreen mainScreen] bounds].size.width;
CGFloat leftConstant = 0;
CGFloat rightConstant = 0;
switch (screenWidth) {
case 325:
leftConstant = 1;
rightConstant = 1;
break;
case 375:
leftConstant = 2;
rightConstant = 2;
break;
case 414:
leftConstant = 3;
rightConstant = 3;
break;
}
self.leftSpacingConstraint.constant = leftConstant;
self.rightSpacingConstraint.constant = rightConstant;
這是一個簡單的方法,你可以定義macros例如,或拉third party libraries到我們的項目。
也許是這樣的:
[NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.superview
attribute:NSLayoutAttributeCenterX
multiplier:1.f constant:0.f]];
或者,如果你使用的.xib文件,刪除left
和right
限制,並添加centerHorizontal