OGeek|极客世界-中国程序员成长平台

标题: ios - 如何为旋转的 UISlider 设置约束? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 16:36
标题: ios - 如何为旋转的 UISlider 设置约束?

我似乎找不到关于 SO 的正确答案。我正在尝试旋转子类 UISlider 并应用约束以正确定位它,但似乎无法使其正常工作。在 XIB 中,它有限制,因此我没有任何错误显示问题。 (老板讨厌显示错误)。所以我先去掉约束。

我的代码如下所示:

    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

它没有正确的宽度/高度,并且未与左侧的 deviceIcon 底部对齐。 (我认为它可能是与 deviceIcon 的适当距离,我不知道。)

我怎样才能正确地做到这一点?



Best Answer-推荐答案


所以答案是:不要。只需调整现有的前导和底部约束,使旋转的 slider 位于正确的位置。

关于ios - 如何为旋转的 UISlider 设置约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37306316/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4