discuz论坛 自定义用户栏 怎么样增加字符?我的论坛只有10个字符,最多5个汉字,怎么样拓宽呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了discuz论坛 自定义用户栏 怎么样增加字符?我的论坛只有10个字符,最多5个汉字,怎么样拓宽呢?相关的知识,希望对你有一定的参考价值。

有没有人知道,急啊

参考技术A 同问,我也是想增加显示字符,怎么样能增加11个字符以上。 参考技术B 还是不要拓宽的好啊。追问

请问有人知道不?

如何在 Swift 中增加自定义 UINavigationBar 类的高度

【中文标题】如何在 Swift 中增加自定义 UINavigationBar 类的高度【英文标题】:How to increase height for a custom UINavigationBar class in Swift 【发布时间】:2017-08-24 05:19:15 【问题描述】:

更新:我最终隐藏了默认导航栏并添加了一个与导航栏看起来相同的 UIView。这听起来可能不太好,但与其修补到 UINavigationBar 相比,这很好。


这是我创建的自定义UINavigationBar 类,用于增加应用程序中导航栏的高度。它对我不起作用。这是code。

class PPBaseNavigationBar: UINavigationBar 

    ///The height you want your navigation bar to be of
    static let navigationBarHeight: CGFloat = 83.0

    ///The difference between new height and default height
    static let heightIncrease: CGFloat = navigationBarHeight - 44

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

    required init?(coder aDecoder: NSCoder) 
        super.init(coder: aDecoder)
        initialize()
    

    private func initialize() 
        let shift = PPBaseNavigationBar.heightIncrease/2.0

        ///Transform all view to shift upward for [shift] point
        self.transform = CGAffineTransform(translationX: 0, y: -shift)
    

    override func layoutSubviews() 
        super.layoutSubviews()

        let shift = PPBaseNavigationBar.heightIncrease/2.0

        ///Move the background down for [shift] point
        var classNamesToReposition: Array<String>?
        if #available(iOS 10.0, *) 
            classNamesToReposition = ["_UIBarBackground"]
         else 
            classNamesToReposition =  ["_UINavigationBarBackground"]
        

        for view: UIView in self.subviews 
            if (classNamesToReposition?.contains(NSStringFromClass(view.classForCoder)))! 
                let bounds: CGRect = self.bounds
                var frame: CGRect = view.frame
                frame.origin.y = bounds.origin.y + shift - 20.0
                frame.size.height = bounds.size.height + 20.0
                view.frame = frame
            
        
    

    override func sizeThatFits(_ size: CGSize) -> CGSize 
        let amendedSize:CGSize = super.sizeThatFits(size)
        let newSize:CGSize = CGSize.init(width: amendedSize.width, height: PPBaseNavigationBar.navigationBarHeight)
        return newSize;
    

除了override func sizeThatFits(_ size: CGSize) -&gt; CGSize ... 不确定,所有方法都被调用,为什么?

【问题讨论】:

您是否尝试过以编程方式添加导航栏? 创建导航控制器引用,然后在导航栏上初始化它的新引用。你可以用框架初始化导航栏 嗨马拉夫,谢谢你的回复兄弟。我在 UIStoryboard 和编程中都尝试过,但没有帮助。我刚刚通过替换默认导航栏添加了UIView。这对我的应用来说是一个很好的解决方案。 【参考方案1】:
It is not permissible to change the navigation bar object or modify its bounds, frame, or alpha values directly. 

Modifying the Navigation Bar Object Directly

您可以使用自定义视图作为导航栏。根据您的要求自定义视图(例如更改高度)并将默认导航栏隐藏为

self.navigationController?.setNavigationBarHidden(true, animated: false)

【讨论】:

【参考方案2】:

layoutSubviews 也可以覆盖 func sizeThatFits(_ size: CGSize)。 所以如果它不是 sizeThatFits 调用,请不要担心。我检查了 layoutSubviews Navigationbar 的高度正在改变。

for view: UIView in self.subviews 
        if (classNamesToReposition?.contains(NSStringFromClass(view.classForCoder)))! 
            let bounds: CGRect = self.bounds
            var frame: CGRect = view.frame
            frame.origin.y = bounds.origin.y + shift - 20.0
            frame.size.height = bounds.size.height + 150.0
            view.frame = frame
        
    

【讨论】:

【参考方案3】:

试试这样,这在 Swift 3 中对我有用:

extension UINavigationBar 

    override open func sizeThatFits(_ size: CGSize) -> CGSize 
        return CGSize(width: UIScreen.main.bounds.size.width, height: "Your custom height")   
    




// MARK: - View life cycle methods

class DVNavigationController: UINavigationController 

    override func viewWillLayoutSubviews() 
        super.viewWillLayoutSubviews()
        navigationBar.frame.size.height = "Your custom height"
    


最后将此自定义UINavigationController 类分配给您的navigationController

【讨论】:

【参考方案4】:

如下修改你的代码

open override func sizeThatFits(_ size: CGSize) -> CGSize 
        let amendedSize:CGSize = super.sizeThatFits(size)
        let newSize:CGSize = CGSize.init(width: amendedSize.width, height: PPBaseNavigationBar.navigationBarHeight)
        return newSize;
    

可能对你有用。

【讨论】:

以上是关于discuz论坛 自定义用户栏 怎么样增加字符?我的论坛只有10个字符,最多5个汉字,怎么样拓宽呢?的主要内容,如果未能解决你的问题,请参考以下文章

discuz论坛只收录首页不收录内页怎么办?采纳有红包

Discuz3.X可以放广告的地方积累

discuz论坛 帖子内容用户栏目中 主题 帖子 精华 想把精华改成红色怎么修改?

Discuz 7.0.论坛帖子页面怎样修改左侧用户头像大小?

discuz 怎么设置直接发上去是HTML

discuz怎么和我自己的网站一起用啊