【问题标题】:Swift Change height of UISlider快速更改 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!你找到解决办法了吗?

标签: ios iphone swift xcode uislider


【解决方案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))
    }
}

*别忘了清理你的项目

【讨论】:

    猜你喜欢
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 2013-10-18
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多