我以编程方式创建了一个 UISlider,在添加两个自动布局约束后, slider 条不再出现。我看到了 slider 的小块/圆圈,但没有其他东西。
// create slider programmatically
_sliderFrame = CGRectMake(10.0f, 10.0f, 250.0f, 400.0f);
_sliderCalibrate = [[UISlider alloc] initWithFrame:_sliderFrame];
_sliderCalibrate.minimumValue = 1.0f;
_sliderCalibrate.maximumValue = 100.0f;
_sliderCalibrate.value = 50.0f;
// manually specify Auto Layout constraints in code
[_sliderCalibrate setTranslatesAutoresizingMaskIntoConstraints:NO];
// add slider to view
[self.view addSubview:_sliderCalibrate];
NSLayoutConstraint *centerSliderX = [NSLayoutConstraint constraintWithItem:_sliderCalibrate
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual toItem:_sliderCalibrate.superview
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0];
NSLayoutConstraint *centerSliderY = [NSLayoutConstraint constraintWithItem:_sliderCalibrate
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual toItem:_sliderCalibrate.superview
attribute:NSLayoutAttributeCenterY
multiplier:1.0
constant:0.0];
[_sliderCalibrate.superview addConstraints:@[centerSliderX, centerSliderY]];
最佳答案
使用自动布局时不应该设置任何框架,所以只需使用 [UISlider new]
创建 slider ;添加宽度约束,或删除 centerX 约束,并向 super View 的两个边缘添加约束,为 slider 提供非零宽度。
关于ios - UISlider 栏以编程方式使用自动布局消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997818/