Swift_Slider

//

//  ViewController.swift

//  Swift_Slider

//

//  Created by HarrySun on 16/7/19.

//  Copyright © 2016 Mobby. All rights reserved.

//


import UIKit


class ViewController: UIViewController {


    var mySlider =UISlider()

    

    

    overridefunc viewDidLoad() {

        super.viewDidLoad()

        

        mySlider =UISlider(frame:CGRectMake(50,300, 300,50))

        mySlider.backgroundColor =UIColor.yellowColor()

        mySlider.minimumValue =0     //设置滑块最小值

        mySlider.maximumValue =100     //设置滑块最大值

        mySlider.value =20     //设置默认值

        mySlider.continuous =true      //设置是否联系出发事件

//        mySlider.setMinimumTrackImage(UIImage(named: "zuoshitu"), forState: UIControlState.Normal)      //设置滑块左边的图片

//        mySlider.setMaximumTrackImage(UIImage(named: "youshitu"), forState: UIControlState.Normal)      //设置滑块右轨的图片

        

        mySlider.minimumTrackTintColor =UIColor.greenColor()

        mySlider.maximumTrackTintColor =UIColor.redColor()

        

        mySlider.setThumbImage(UIImage(named:"zuoshitu"), forState: UIControlState.Normal)   // 设置滑块的图片

        // 注意这里要加UIControlStateHightlighted的状态,否则当拖动滑块时滑块将变成原生的控件

        mySlider.setThumbImage(UIImage(named:"youshitu"), forState: UIControlState.Highlighted)

        mySlider.minimumValueImage =UIImage(named: "zuoshitu")// 设置 slider左侧图片

        mySlider.maximumValueImage =UIImage(named: "youshitu")// 设置 slider右侧图片

        mySlider.addTarget(self,action:#selector(ViewController.sliderValueChange(_:)), forControlEvents: UIControlEvents.ValueChanged)       // 添加控制事件

        mySlider.addTarget(self,action:#selector(ViewController.sliderDragUp(_:)), forControlEvents: UIControlEvents.TouchUpInside)

        

        self.view.addSubview(mySlider)

    }


    overridefunc didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }


    

    // 滑块拖动时的事件

    func sliderValueChange(sender:UISlider) {

        

        print("拖动时:Value:\(sender.value)")

    }


    // 滑块拖动后的事件

    func sliderDragUp(sender:UISlider) {

        

        print("拖动后:Value:\(sender.value)")

    }

    

}


### 如何在SwiftUI中使用Slider组件 在SwiftUI中,`Slider` 组件允许用户通过滑动来选择一个数值范围内的值。以下是一个关于如何在SwiftUI中使用 `Slider` 的详细说明和示例代码。 #### 基本用法 `Slider` 的基本用法需要绑定一个状态变量(`@State`),以便跟踪用户的输入。`Slider` 接受一个范围(`value:in:`)作为参数,并可以设置步长(`step:`)。以下是一个简单的示例: ```swift import SwiftUI struct ContentView: View { @State private var sliderValue: Double = 50.0 var body: some View { VStack { Text("当前值: \(sliderValue, specifier: "%.0f")") .font(.title) Slider(value: $sliderValue, in: 0...100, step: 1) .padding() } } } ``` 在这个例子中,`sliderValue` 是一个 `@State` 变量,初始值为 `50.0`。`Slider` 的范围被设置为 `0...100`,并且步长为 `1`[^6]。 #### 自定义外观 SwiftUI 允许自定义 `Slider` 的外观。可以通过 `.accentColor()` 修改滑块的颜色,或者使用更复杂的修饰符来自定义轨道和拇指的样式。例如: ```swift import SwiftUI struct ContentView: View { @State private var sliderValue: Double = 50.0 var body: some View { VStack { Text("当前值: \(sliderValue, specifier: "%.0f")") .font(.title) Slider(value: $sliderValue, in: 0...100, step: 1) .accentColor(.red) // 设置滑块颜色为红色 .padding() } } } ``` 在这个例子中,`.accentColor(.red)` 将滑块的颜色更改为红色[^7]。 #### 结合其他UI元素 `Slider` 经常与其他 UI 元素结合使用,例如 `Text` 或 `TextField`,以显示或输入精确的数值。以下是一个结合了 `Text` 和 `TextField` 的示例: ```swift import SwiftUI struct ContentView: View { @State private var sliderValue: Double = 50.0 var body: some View { VStack { Text("当前值: \(sliderValue, specifier: "%.0f")") .font(.title) HStack { Text("最小值") Slider(value: $sliderValue, in: 0...100, step: 1) Text("最大值") } .padding() TextField("输入数值", value: $sliderValue, formatter: NumberFormatter()) .textFieldStyle(RoundedBorderTextFieldStyle()) .keyboardType(.numberPad) .padding() } } } ``` 在这个例子中,`TextField` 允许用户直接输入数值,同时 `Slider` 提供了可视化的调整方式[^8]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值