当其父UIView的位置设置时,UISlider不会移动?

时间:2017-11-05 06:04:17

标签: ios swift xcode uiview uislider

我有一个名为volumeControlView的UIView,它在调用此动作时被创建:

@IBAction func toggleRainControl(_ sender: Any) {
    self.view.addSubview(volumeControlView)
    //volumeControlView.frame.origin = CGPoint(x: 0, y: -100)
    volumeControlView.layer.cornerRadius = 25
    volumeSlider.transform = CGAffineTransform(rotationAngle: CGFloat(-Double.pi/2))
}

volumeControlView内部我有一个名为volumeSlider的UISlider。它应该在触摸时调整我的雨声效果。当用户触摸volumeSlider时,会调用此操作:

@IBAction func changeRainVolume(_ sender: UISlider) {
    let selectedValue = Double(sender.value)
    player.rainPlayer.volume = selectedValue
}

当toggleRainControl()中的注释掉的行被注释掉时,这一切都很有效,但是当我尝试通过取消注释该行来调整volumeControlView的位置时,它会破坏UISlider功能并且它不再移动当用户触摸它时。我做错了什么?

更新:

我将toggleRainControl()更新为:

@IBAction func toggleRainControl(_ sender: Any) {
    self.view.addSubview(volumeControlView)
    self.view.frame = CGRect(x: self.view.frame.origin.x, y: self.view.frame.origin.y - 100, width: self.view.frame.width, height: self.view.frame.height + 100)
    volumeControlView.layer.cornerRadius = 25
    volumeSlider.transform = CGAffineTransform(rotationAngle: CGFloat(-Double.pi/2))
}

这是它的样子:

The blue part is the frame of volumeControlView

蓝色部分是volumeControlView的框架

0 个答案:

没有答案