【问题标题】:StoryboardUI how to make the label follow the sliderStoryboardUI 如何使标签跟随滑块
【发布时间】:2021-07-19 12:19:41
【问题描述】:

我正在做一个 storyboardUI 应用程序。 UI设计的一部分是这样的:

我希望标签位置始终跟随滑块位置,如下所示:

我该怎么做?

【问题讨论】:

    标签: swift storyboard


    【解决方案1】:

    将此类分配给 UISlider。

    在这个类中创建了一个标签并根据滑块拇指改变位置。

    class ThumbTextSlider: UISlider {
        private var thumbTextLabel: UILabel = UILabel()
        
        private var thumbFrame: CGRect {
            return thumbRect(forBounds: bounds, trackRect: trackRect(forBounds: bounds), value: value)
        }
        
        private lazy var thumbView: UIView = {
            let thumb = UIView()
            return thumb
        }()
        
        override func layoutSubviews() {
            super.layoutSubviews()
            thumbTextLabel.frame = CGRect(x: thumbFrame.origin.x, y: thumbFrame.maxY - 5, width: thumbFrame.size.width, height: 30)
            self.setValue()
        }
        
        private func setValue() {
            thumbTextLabel.text = String(format: "%0.2f", self.value)
        }
        
        override func awakeFromNib() {
            super.awakeFromNib()
            addSubview(thumbTextLabel)
            thumbTextLabel.textAlignment = .center
            thumbTextLabel.textColor = .blue
            thumbTextLabel.layer.zPosition = layer.zPosition + 1
            thumbTextLabel.adjustsFontSizeToFitWidth = true
        }
    }
    

    【讨论】:

    • 感谢您的回答。这看起来很有希望。但是,当我将代码粘贴到项目中时,标签仍未显示。
    • 您是否已将此类分配给 UISlider 控制器?如果是,那么您是否向滑块添加了任何高度约束?
    • 以 NSException 类型的未捕获异常终止 *** 由于未捕获异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey:]:此类不是键值编码-符合关键 UISliderController。以 NSException CoreSimulator 732.18.6 类型的未捕获异常终止-设备:iPhone SE(第 2 代)(EBD31BDC-336E-4C13-A4B5-31EF698284DD)-运行时:iOS 14.4(18D46)-设备类型:iPhone SE(第 2 代)(lldb )
    • 如果你觉得这个答案有用,那么你可以接受这个,对于你的第二个问题,请检查这个:stackoverflow.com/a/65274464/14733292
    • 非常感谢 Raja 的帮助。希望你有一个愉快的一天。
    猜你喜欢
    • 1970-01-01
    • 2019-04-11
    • 2012-01-24
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多