iOS swift UISlider改变进度条的高度和圆形滑块的大小

请添加图片描述

1.改变进度条的高度(亲测有效)

import UIKit

class CustomSlider: UISlider {
   
    // 设置轨道高度
    var trackHeight: CGFloat = 10

    // 重写 trackRect(forBounds:) 方法来自定义轨道的尺寸
    override func trackRect(forBounds bounds: CGRect) -> CGRect {
   
        // 获取默认的轨道矩形
        var rect = super.trackRect(forBounds: bounds)
        // 修改矩形的高度
        rect.size.height = trackHeight
        return rect
    }
}

// 使用示例
let slider = CustomSlider(frame: CGRect(x: 0, y: 0, width: 200, height: 30))
slider.trackHeight = 20 // 设置进度条的宽度为20点

2.改变圆形滑块的大小(亲测有效)

import UIKit

class ViewController: UIViewController {
   

    override func viewDidLoad() {
   
        super.viewDidLoad()

        // 创建 UISlider
        let slider = UISlider(frame: CGRect(x: 50, y: 100, width: 300, height: 50))
        self.view.addSubview(slider)

        // 创建一个50x50点的自定义滑块图像
        let thumbImage = UIImage(named: "customThumbImage") // 确保您有一个名为 "customThumbImage" 的50x50点的图像
        slider.setThumbImage(thumbImage, for: .normal)
    }
}

  • 用下面的方法圆形滑块的大小没有变化
import UIKit

class CustomSlider: UISlider {
   
    // 设置滑块的大小
    var thumbSize: CGSize = CGSize(width: 30, height: 30)

    // 重写 thumbRect 方法来自定义滑块的尺寸
    override func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect {
   
        // 获取默认的滑块矩形
        let defaultRect = super.thumbRect(forBounds: bounds, trackRect: rect, value: value)
        // 计算新的滑块矩形
        let newRect = CGRect(x: defaultRect.origin.x, y: defaultRect.origin.y + (defaultRect.size.height - thumbSize.height) / 2, width: thumbSize.width, height: thumbSize.height)
        return newRect
    }
}

// 使用示例
let slider = CustomSlider(frame: CGRect(x: 0, y: 0, width: 200, height: 30))
slider.thumbSize = CGSize(width: 40, height: 40) // 设置滑块的大小为40x40

相关推荐

  1. MFC:控件与进度控件使用

    2024-01-17 19:06:01       20 阅读
  2. 7-字串简写:前缀+思想学习

    2024-01-17 19:06:01       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 19:06:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 19:06:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 19:06:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 19:06:01       18 阅读

热门阅读

  1. 《设计模式的艺术》笔记 - 面向对象设计原则

    2024-01-17 19:06:01       32 阅读
  2. 设计模式-桥接模式

    2024-01-17 19:06:01       31 阅读
  3. 高防IP如何有效应对网站DDOS攻击

    2024-01-17 19:06:01       44 阅读
  4. WINCC 传入值一维数组 返回值二维数组

    2024-01-17 19:06:01       31 阅读
  5. 服务器 Linux常见指令

    2024-01-17 19:06:01       35 阅读
  6. vite 创建 react 项目

    2024-01-17 19:06:01       33 阅读
  7. 前端Angular框架基础知识(一)

    2024-01-17 19:06:01       28 阅读
  8. 贪心算法part03算法

    2024-01-17 19:06:01       37 阅读