2016-05-18 21 views
2

私はSOの適切な答えを見つけることができないようです。私はサブクラス化されたUISliderを回転させ、それを適切に配置するための制約を適用しようとしていますが、正しく動作するようには見えません。 XIBには、エラーの表示に問題がないように制約があります。 (ボスはエラーを嫌う)。だから私は最初に制約を取り除く。回転したUISliderに制約を設定するにはどうすればよいですか?

私のコードは次のようになります。

removeConstraints([sliderHeight, sliderWidth, sliderLeading, sliderBottom]) 

    let rotation = CATransform3DMakeRotation(-CGFloat(M_PI_2), 0.0, 0.0, 1.0) 
    self.layer.transform = rotation 

    let views = ["slider":slider, "deviceIcon":deviceIcon] 
    var constraints = NSLayoutConstraint.constraintsWithVisualFormat("H:[deviceIcon]-8-[slider]", options: .DirectionLeadingToTrailing, metrics: nil, views: views) 
    constraints.append(NSLayoutConstraint(item: deviceIcon, attribute: .Bottom, relatedBy: .Equal, toItem: slider, attribute: .Bottom, multiplier: 1, constant: 0)) 
    constraints.append(NSLayoutConstraint(item: slider, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 30)) 
    constraints.append(NSLayoutConstraint(item: slider, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 115)) 

    addConstraints(constraints) 

それが実行されると、フレームは、この(グレーとオレンジの垂直ダッシュ間の白い部分が親指である)のようになります。

Vertical Slider with constraints

それ適切な幅/高さを持たず、その左側のデバイスIconの底に整列していません。 (がdeviceIconから適切な距離にあると思いますが、わかりません)

これを正しく行うにはどうすればよいですか?

答えて

1

したがって、答えは「しない」です。回転したスライダが適切な位置にくるように、既存の先行および下限の制約を調整するだけです。

関連する問題