2016-06-19 4 views
0

私はスライダーを画面の中央に配置し、4sを除くすべてのデバイスに正しく配置されています。スライダーが画面の真ん中にあるように、他のすべてのデバイスのように右にずらすようにする方法はわかりません。私のIphone 4s内の私のUISliderの位置が他のすべてのデバイスと異なるのはなぜですか?

enter image description here

if UIDevice.currentDevice().userInterfaceIdiom == .Phone { 

     let scaleFactor = UIScreen.mainScreen().bounds.width/320 


     middleSlider = UISlider(frame: CGRectMake(125 * scaleFactor, 153 * scaleFactor, 150, 50)) 
     middleSlider.tintColor = UIColor.whiteColor() 
     middleSlider.minimumTrackTintColor = UIColor.whiteColor() 
     middleSlider.maximumTrackTintColor = UIColor.whiteColor() 
     middleSlider.value = 1.0 
     middleSlider.continuous = true 
     middleSlider.userInteractionEnabled = true 
     self.view?.addSubview(middleSlider) 
} 

if UIDevice.currentDevice().userInterfaceIdiom == .Pad { 

     let scaleFactor = UIScreen.mainScreen().bounds.width/320 
     middleSlider = UISlider(frame: CGRectMake(130 * scaleFactor, 650, 200, 150)) 
     middleSlider.tintColor = UIColor.whiteColor() 
     middleSlider.minimumTrackTintColor = UIColor.whiteColor() 
     middleSlider.maximumTrackTintColor = UIColor.whiteColor() 
     middleSlider.value = 1.0 
     middleSlider.continuous = true 
     middleSlider.userInteractionEnabled = true 
     self.view?.addSubview(middleSlider) 

} 
+0

autolayoutを使用していますか? – Milo

+0

私はスプライトキットなのでいいえ。 – coding22

+0

あなたは 'UIKit'を使っていますので、自動レイアウトを使うことができます – Paulw11

答えて

1

middleSlider = UISlider(frame: CGRectMake(self.view.bounds.width/2 - 150/2, 153 * scaleFactor, 150, 50)); 

をたどり、それはまた、すべてのデバイスに対してセンタリングされるように、あなたは、単に行うことができますスライダーを中央に:ここで使用したコードImがあります。

+0

中央にはcorrectleyがありますが、4sの高さはちょっとです他のデバイスに比べて高い。どのように私はそれを修正するだろうか? – coding22

+0

@ coding22高さのために別のアプローチを使用することを提案します... 私は、それは多かれ少なかれ下から同じ高さでなければならないと思うので、 'self.view.bounds.height - 50 - 120'のようにすることができますあなたの 'CGRectMake' ... – ColdSteel

+0

@ coding22 iPhone 4/4は320ポイントの幅を持っているので、' let scaleFactor = UIScreen.mainScreen()。bounds.width/320 'という行はiPhone 4で" 1.0 "/4s – ColdSteel

関連する問題