pujiaxin33 / JXSegmentedView

A powerful and easy to use segmented view (segmentedcontrol, pagingview, pagerview, pagecontrol, categoryview) (腾讯新闻、今日头条、QQ音乐、网易云音乐、京东、爱奇艺、腾讯视频、淘宝、天猫、简书、微博等所有主流APP分类切换滚动视图)
MIT License
2.66k stars 369 forks source link

使用自定义导航栏,修改导航栏宽度后,标题会跳动 #211

Open ZAREMYDREAM opened 1 year ago

ZAREMYDREAM commented 1 year ago

使用自定义导航栏,修改导航栏宽度后,标题会跳动。使用以下代码自定义UINavigationBar,在demo中Main将导航栏修改成该类,可复现

class JGJNavigationBar: UINavigationBar {
    @objc var margins: CGFloat = 16
    override func layoutSubviews() {
        super.layoutSubviews()

        if #available(iOS 13.0, *) {
            for view in subviews {
                if "\(view.self)".contains("UINavigationBarContentView") {
                    let margins = view.layoutMargins
                    self.margins = margins.left
                    view.frame = CGRect(x: -margins.left, y: view.bounds.origin.y, width: view.bounds.size.width  + margins.left + margins.right, height: view.bounds.size.height)

                    break
                }

            }
        } else {
            for view in subviews {
                if "\(view.self)".contains("ContentView") {
                    view.layoutMargins = UIEdgeInsets(top: view.layoutMargins.top, left: 0, bottom: view.layoutMargins.bottom, right: 0)
                    self.margins = view.layoutMargins.left
                    break
                }
            }
        }
    }
}
ZAREMYDREAM commented 1 year ago

JXCategoryView不存在该问题