ios – UINavigationItem titleView定位问题

我有一个iPad应用程序,在其中一个屏幕上我有一个UIToolbar设置为viewController的navigationItem的titleView.我还有一个leftBartonItem和一个rightBarButtonItem.

当我以横向进入屏幕并旋转设备时,titleView保持居中.但是,如果我执行相反操作(以纵向输入并旋转设备),则titleView将向右移动.有没有什么办法解决这一问题?这是我的代码

UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0,350,self.navigationController.navigationBar.frame.size.height)];
UIToolbar *titletoolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0,self.navigationController.navigationBar.frame.size.height)];
titletoolbar.items = @[commentButton,spacer2,downloadButton,spacer3,homeButton,spacer4,pagedisplayButton,spacer5,searchButton];
titletoolbar.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[titleView addSubview:titletoolbar];
self.navigationItem.titleView = titleView;

编辑:

self.navigationItem.titleView.frame.size在两种情况下都是相同的,更改的东西是origin.x

解决方法

如果您使用的是工具栏,请不要将titleView添加为subView.而是添加items数组.

UIToolbar *titletoolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0,self.navigationController.navigationBar.frame.size.height)];

UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0,titletoolbar.frame.size.height)];

添加条形按钮项目作为titleViewBtn并使边框平整.

titletoolbar.items = @[commentButton,**titleViewBtn**,searchButton];
titletoolbar.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...