Add UISLider with Autolayout programmatically

2019-05-11 04:52发布

问题:

I'm trying to add a UISlider to my view programmatically including constraints so that its width adapts to the whole screen width. This is what I got so far:

//2 Add UISlider
self.slider = [[UISlider alloc] init];
[self.view addSubview:self.slider];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.slider
                                                      attribute:NSLayoutAttributeLeft 
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view 
                                                      attribute:NSLayoutAttributeLeft 
                                                     multiplier:1 
                                                       constant:0]];


[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.slider
                                                      attribute:NSLayoutAttributeRight 
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view 
                                                      attribute:NSLayoutAttributeRight 
                                                     multiplier:1 
                                                       constant:0]];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.slider
                                                      attribute:NSLayoutAttributeBottom 
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view 
                                                      attribute:NSLayoutAttributeBottom 
                                                     multiplier:1 
                                                       constant:0]];

回答1:

Missing self.slider.translatesAutoresizingMaskIntoConstraints = NO; Your code is working fine for me. See the below image