gpt4 book ai didi

ios - 将 XIB 中的 View 添加到自定义 UINavigationBar 子类

转载 作者:行者123 更新时间:2023-11-28 08:42:22 27 4
gpt4 key购买 nike

我关注了this code创建一个更高的 UINavigationBar:

var heightIncrease: CGFloat = 38.0

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.transform = CGAffineTransformMakeTranslation(0, -heightIncrease)
}

override init(frame: CGRect) {
super.init(frame: frame)
}

override func sizeThatFits(size: CGSize) -> CGSize {
var newSize = super.sizeThatFits(size)
newSize.height += heightIncrease
return newSize
}

override func layoutSubviews() {
super.layoutSubviews()
for view in self.subviews {
if (NSStringFromClass(view.classForCoder).containsString("UINavigationBarBackground")) {
view.frame.origin.y = self.bounds.origin.y + heightIncrease - statusBarHeight
view.frame.size.height = self.bounds.size.height + statusBarHeight
}
}
}

var statusBarHeight: CGFloat {
return UIApplication.sharedApplication().statusBarFrame.size.height
}

enter image description here

现在我想从 XIB 添加一个 View 到底部。我的第一个想法是做这样的事情:

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

self.transform = CGAffineTransformMakeTranslation(0, -heightIncrease)

if let accessoryView = NSBundle.mainBundle()
.loadNibNamed("NavBarAccessoryView", owner: self, options: nil)
.first as? NavBarAccessoryView {
accessoryView.frame.size.width = self.bounds.size.width
accessoryView.frame.origin.y = 75
self.addSubview(accessoryView)
}
}

看起来还可以,但是在segmented control中无法选中segment,就好像只是一张图片:

enter image description here

有更好的方法吗?如果这是一个愚蠢的问题或者如果我的尝试没有意义,我很抱歉,我是新手,到目前为止我只处理了来自界面构建器的 View 和东西。

最佳答案

我写扩展名:

extension UIView {

static func instanceFromNibByClassName() -> UIView {
let nibName = stringFromClass(self as AnyClass)
return NSBundle.mainBundle().loadNibNamed(nibName, owner: nil, options: nil).first! as! UIView
}

所以我可以得到这样的实例:

    var coverTableViewCell=YQEventCoverTableViewCell.instanceFromNibByClassName() as! YQEventCoverTableViewCell

关于ios - 将 XIB 中的 View 添加到自定义 UINavigationBar 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196039/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com