Swift 導(dǎo)航欄的titleView居中顯示問(wèn)題

今天在練習(xí)寫(xiě)微博的時(shí)候遇到一個(gè)問(wèn)題:首頁(yè)的導(dǎo)航欄titleView是自定義的UIButton,要讓文字顯示在圖片的前面,這里重寫(xiě)了layoutSubViews()方法,也設(shè)置了sizeToFit();但是結(jié)果如下:

文字和標(biāo)題沒(méi)有親密的在一起

這是跟著網(wǎng)上的視頻一步步做的結(jié)果
想了一下:?jiǎn)栴}肯定是出在了layoutSubViews();


/// 重寫(xiě)布局方法  讓圖片在文字的后面

override func layoutSubviews() {

super.layoutSubviews()

// 判斷是否有圖標(biāo)和標(biāo)題

guard let imageView = imageView, let titleLabel = titleLabel else {

return

}

// 對(duì)應(yīng)移動(dòng)

titleLabel.frame = titleLabel.frame.offsetBy(dx: -imageView.bounds.width, dy: 0)

imageView.frame = imageView.frame.offsetBy(dx: titleLabel.bounds.width, dy: 0)

}

可以看到titleLabel.frame和imageView.frame分別以對(duì)方為參照移動(dòng)。如圖所示移動(dòng)的量明顯大了很多啊。所以試著分別調(diào)用了sizeToFit();

        // 設(shè)置圖片和文字的尺寸
        titleLabel?.sizeToFit()
        imageView?.sizeToFit()
        // 設(shè)置button的sizeToFit 否則它不知道要如何顯示
        sizeToFit()

結(jié)果完美了!

就是醬紫的
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容