快速更改 UISlider 的高度

Posted

技术标签:

【中文标题】快速更改 UISlider 的高度【英文标题】:Swift Change height of UISlider 【发布时间】:2018-08-13 19:50:51 【问题描述】:

我正在尝试更改 UISlider 的高度。这就是我目前正在做的事情:

class CustomSlider: UISlider 

override func trackRect(forBounds bounds: CGRect) -> CGRect 
    var newBounds = super.trackRect(forBounds: bounds)
    newBounds.size.height = 20.0
    return newBounds


@IBInspectable var thumbImage: UIImage? 
    didSet 
        setThumbImage(thumbImage, for: .normal)
    


@IBInspectable var thumbHighlightedImage: UIImage? 
    didSet 
        setThumbImage(thumbImage, for: .highlighted)
    



这似乎在大多数情况下都有效,但我遇到了一个问题,即当滑块到达末尾时,它不再是圆形的,如下图所示:

slider issue

有没有办法解决这个问题?我宁愿坚持使用系统滑块而不是自定义滑块。

编辑:更改的图像。

【问题讨论】:

对我来说,它看起来不像是方形的,看起来滑块比它的容器宽,所以它在圆形末端之前被切割。 更改了图像,希望能更好地展示它。 嗨@Josh!你找到解决办法了吗? 【参考方案1】:

斯威夫特 4.2

import UIKit
@IBDesignable open class DesignableSlider: UISlider 

    @IBInspectable var trackHeight: CGFloat = 5

    @IBInspectable var roundImage: UIImage? 
        didSet
            setThumbImage(roundImage, for: .normal)
        
    
    @IBInspectable var roundHighlightedImage: UIImage? 
        didSet
            setThumbImage(roundHighlightedImage, for: .highlighted)
        
    
    override open func trackRect(forBounds bounds: CGRect) -> CGRect 
        //set your bounds here
        return CGRect(origin: bounds.origin, size: CGSize(width: bounds.width, height: trackHeight))
    

*别忘了清理你的项目

【讨论】:

以上是关于快速更改 UISlider 的高度的主要内容,如果未能解决你的问题,请参考以下文章

UISlider 在水平 UIStackView 中的高度

如何降低 UISlider 框架高度?

UISlider 自定义图像和拇指高度?

自定义 UISlider(跟踪图像高度)

在不使用图像的情况下增加 UISlider 高度

UISlider 管理 UIPageViewController 分页