UIBarButton渲染问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIBarButton渲染问题相关的知识,希望对你有一定的参考价值。
目前,当我使用一些自定义方法更改按钮图像的位置以将其移动到文本的右侧并添加一些填充时,我正在实现某种自定义UIBarButtonItem。但是,当我离开屏幕并返回按钮时,文本和图像会被切换和扭曲,如附图中所示。
第一张照片是当我离开屏幕时按钮看起来的方式,然后返回第二张照片是它最初的样子。我已经包含了uibarbuttonitem的代码,如果有人看到任何我没有引起这个渲染问题的东西我会非常感激。
import Foundation
import UIKit
class LocationManager: UIBarButtonItem {
var viewController: MainViewController?
lazy var customButton : UIButton = {
let customButton = UIButton(type: .system)
customButton.setImage(UIImage(named: "downArrow"), for: .normal)
customButton.imageEdgeInsets = UIEdgeInsetsMake(0, 20, 0, -10)
guard let customFont = UIFont(name: "NoirPro-SemiBold", size: 20) else {
fatalError("""
Failed to load the "CustomFont-Light" font.
Make sure the font file is included in the project and the font name is spelled correctly.
"""
)
}
customButton.semanticContentAttribute = UIApplication.shared
.userInterfaceLayoutDirection == .rightToLeft ? .forceLeftToRight : .forceRightToLeft
customButton.titleLabel?.font = customFont
customButton.setTitleColor(UIColor.black, for: .normal)
return customButton
}()
override init() {
super.init()
setupViews()
}
@objc func setupViews(){
customView = customButton
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
答案
customView
应该是UIView
类型。我怀疑使用更高类型的UIButton
会导致问题。在您的customView
中,您需要将标题和图像设置为子视图并根据您的意愿进行约束。
以上是关于UIBarButton渲染问题的主要内容,如果未能解决你的问题,请参考以下文章