2017-05-29 52 views
0

我在一箇舊的iOS項目的工作,主要是用Objective C. 我在這些代碼行(一個對象設置爲屏幕的中間):的iOS leftSpacingConstraint相對於屏幕的高度

self.leftSpacingConstraint.constant = 250.0; 
self.rightSpacingConstraint.constant = 250.0; 

我想改變這些約束相對於屏幕寬度。我會怎麼做? 感謝

回答

1

拿上設備的屏幕寬度的外觀,並應用取決於你想要什麼,權利不變。

// 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到我們的項目。

1

也許是這樣的:

[NSLayoutConstraint constraintWithItem:self 
         attribute:NSLayoutAttributeCenterX 
         relatedBy:NSLayoutRelationEqual 
          toItem:self.superview 
         attribute:NSLayoutAttributeCenterX 
         multiplier:1.f constant:0.f]]; 

或者,如果你使用的.xib文件,刪除leftright限制,並添加centerHorizontal