自定义UISlider子视图框架从主视图偏移

问题描述 投票:0回答:2

我的自定义uislider背景uiview偏离原始视图框架。并且滑块原始(x,y)从0,0越远,偏移越多。

请查看下面的图片。

uislider subview frame offset

import UIKit

class customSlier:UISlider {

    override func awakeFromNib() {
        super.awakeFromNib()

        self.initializeSomeSettings()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)

    }
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }     
    private func initializeSomeSettings() {            
        let view: UIView = UIView()
        view.frame = self.frame
        view.backgroundColor = UIColor.yellow
        self.insertSubview(view, belowSubview: self)
    }    
    override func layoutSubviews() {
        super.layoutSubviews()

    }

}

ios swift uislider subview
2个回答
0
投票

我认为问题出在这一行:

view.frame = self.frame

假设你的卷轴位于(10,10)位置。然后,背景帧也位于滚动框的协调器中的位置(10,10),在原始视图中是(20,20)。我的建议是用这个替换这一行:

view.frame = CGRect(origin: .zero, size: self.frame.size)

希望这可以帮助。


0
投票

试试这个

view.frame = self.bounds
© www.soinside.com 2019 - 2024. All rights reserved.