如果你想根据你的意愿设置你的“UINavigationBar”请非常安全地遵循这个,它在swift语言中如此简单,希望它对你有很大帮助。
步骤1:-
在 swift 中创建一个类别类,只需继续“新建文件”并添加“简单 swift 类”并将其命名为“MyCustomNavBarCategory.swift”
第2步:-
只需“清理课程(从此类中删除所有代码)”和“在下面粘贴我的给定代码”:-
//类将从下面的行 开始从这里开始复制
让 SCREEN_HEIGHT = UIScreen.mainScreen().bounds.size.height
导入 UIKit
扩展 UINavigationBar {
//First increase navigation bar height .
override public func sizeThatFits(size: CGSize) -> CGSize {
NSLog("%f", SCREEN_HEIGHT*0.06);
let newSize:CGSize = CGSizeMake(self.frame.size.width, SCREEN_HEIGHT*0.10)
return newSize;
}
//then set layOut of your Custom Nav for several objects like titleview,buttons and all
public override func layoutSubviews() {
for var view in self.subviews
{
NSLog("view %@", view);
let str :String = view.classForCoder.description();
if(str == "UILabel")
{
//play with title view frame
var f = view.frame;
f.origin.y = self.frame.size.height/2 - view.bounds.size.height/2 ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
else if(str == "UIButton")
{
//play with buttons of navigation bar view frame
var f = view.frame;
f.origin.y = (self.frame.size.height/2) - (view.bounds.size.height/2) ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
}
}
}
//类将在上述行的上述停止复制代码处结束,并将其传递到您的“MyCustomNavBarCategory.swift”中。就是这样享受;)。
第 3 步:-
现在您可以在此类中为 UINavigationBar 的任何对象设置任何框架“如果您仔细实现它,这是 UINavigationBar 的非常强大的类别”。