2016-05-18 7 views
2

Ich kann nicht scheinen, eine richtige Antwort auf SO zu finden. Ich versuche, ein Unterklasse-UISlider zu drehen und Constraints anzuwenden, um es korrekt zu positionieren, aber es scheint nicht zu funktionieren. In der XIB gibt es Einschränkungen, so dass ich keine Probleme mit der Fehleranzeige habe. (Boss hasst Fehler anzeigen). Also entferne ich zuerst die Einschränkungen.Wie setze ich Constraints auf einen gedrehten UISlider?

Mein Code sieht wie folgt aus:

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) 

Sobald es läuft, die Rahmen wie folgt aussehen (weißer Bereich zwischen grau und orange vertikale Striche ist der Daumen):

Vertical Slider with constraints

Es hat nicht die richtige Breite/Höhe und ist nicht auf der Unterseite des deviceIcon auf der linken Seite ausgerichtet. (Ich denke es könnte der richtige Abstand von der deviceIcon sein, kann ich nicht sagen.)

Wie kann ich das richtig machen?

Antwort

1

Also ist die Antwort: Nicht. Passen Sie einfach die vorhandenen Beschränkungen für den Anfang und den unteren Rand an, sodass der gedrehte Schieberegler in der richtigen Position ist.