如何在 Swift 中按下按钮时显示滑块?

Moh*_*iba 2 storyboard ios swift

我正在制作一个绘图应用程序,我希望当用户点击按钮时出现一个滑块,例如设置线条的宽度。我可以添加一个警报并在其中放置一个滑块吗?

小智 5

使用 Swift 3.0,您可以将滑块(或其他对象)添加到 UIAlertController 子视图。以下示例由 @IBAction 按钮触发以使用和更新 UserDefaults:UIAlertController 内的 UISider 示例

\n
@IBAction func sliderButton(_ sender: AnyObject) {\n\n    //get the Slider values from UserDefaults\n    let defaultSliderValue = UserDefaults.standard.float(forKey: "sliderValue")\n\n    //create the Alert message with extra return spaces\n    let sliderAlert = UIAlertController(title: "Update Defaults", message: "Increase/Decrease the slider\xe2\x80\xa6\\n\\n\\n\\n\\n\\n", preferredStyle: .alert)\n\n    //create a Slider and fit within the extra message spaces\n    //add the Slider to a Subview of the sliderAlert\n    let slider = UISlider(frame:CGRect(x: 10, y: 100, width: 250, height: 80))\n    slider.minimumValue = 1\n    slider.maximumValue = 100\n    slider.value = defaultSliderValue\n    slider.isContinuous = true\n    slider.tintColor = UIColor.red\n    sliderAlert.view.addSubview(slider)\n    \n    //OK button action\n    let sliderAction = UIAlertAction(title: "OK", style: .default, handler: { (result : UIAlertAction) -> Void in\n        UserDefaults.standard.set(slider.value, forKey: "sliderValue")\n        })\n\n    //Cancel button action\n    let cancelAction = UIAlertAction(title: "Cancel", style: .destructive, handler: nil)\n\n    //Add buttons to sliderAlert\n    sliderAlert.addAction(sliderAction)\n    sliderAlert.addAction(cancelAction)\n\n    //present the sliderAlert message\n    self.present(sliderAlert, animated: true, completion: nil)\n}\n
Run Code Online (Sandbox Code Playgroud)\n

子视图几乎可以放置在任何地方。为了给滑块腾出空间,我在消息中添加了一些额外的换行符以腾出一些空间。滑块将随警报消息出现和消失。

\n