使用masonry布局旋转View的问题

986 阅读1分钟

代码

// 添加rSlider
        addSubview(rSlider)
        rSlider.transform = CGAffineTransform.init(rotationAngle: CGFloat(-Double.pi/2))
        rSlider.snp.makeConstraints { (make) in
            make.width.equalTo(73)
            make.height.equalTo(9)
            make.centerX.equalTo(headlightColorV).offset(40)
            make.centerY.equalTo(headlightColorV.snp.bottom)
        }
        layoutIfNeeded()
        // 设置滑动底部颜色
        rSlider.bgColor = .red

slider内部所有代码

//
//  NBSlider.swift
//  自定义滑块
//
//  Created by xxzx on 2018/3/5.
//  Copyright © 2018年 xxzx. All rights reserved.
//

import UIKit
import SwifterSwift

class NBSlider: UISlider {

    // 背景颜色
    open var bgColor: UIColor = .red {
        didSet {
            let beforeImg = UIImage.init(color: bgColor, size: CGSize(width: bounds.size.width, height: bounds.size.height))
            let afterImg = UIImage.init(color: bgColor, size: CGSize(width: bounds.size.width, height: bounds.size.height))
            setMinimumTrackImage(beforeImg, for: .normal)
            setMaximumTrackImage(afterImg, for: .normal)
        }
    }
    
    // 移动图片
    open var thumbImg: UIImage? {
        didSet {
            setThumbImage(thumbImg, for: .normal)
        }
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setupConfig()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}

// MARK: - 设置界面
extension NBSlider {
    fileprivate func setupConfig() {
        addTarget(self, action: #selector(sliderValueChanged(slider:)), for: .valueChanged)
    }
}

// MARK: - 监听方法
extension NBSlider {
    @objc fileprivate func sliderValueChanged(slider: NBSlider) {
        print(slider.value)
    }
}

和👇的代码一致

        slider.frame = CGRect(origin: .zero, size: CGSize(width: 100, height: 10))
        // 无法使用圆角,使用图片代替
//        slider.layer.cornerRadius = 3
//        slider.layer.masksToBounds = true
        slider.center = CGPoint(x: self.view.center.x, y: self.view.center.y + 60.0)
        slider.value = 200
        slider.transform = CGAffineTransform.init(rotationAngle: CGFloat(-Double.pi/2))
        slider.bgColor = .orange