用于UIBarButtonItem不再是UIView,而是UIController,所以它没有view属性,因此也就没有frame属性,这给程序员查找导航按钮坐标带来困难。
下面是一种查找导航栏右按钮所在的view的方法,从此view中你可以得到按钮的frame。
// 用遍历subviews的方法找到右导航按钮
-(UIView*)findRightBarItemView:(UINavigationBar*)navbar{UIView* rightView = nil;
for (UIView* v in navbar.subviews) {
if (rightView==nil) {
rightView = v;
} else if (v.frame.origin.x > rightView.frame.origin.x) {
// 对subviews的x坐标进行升序排序,最大的一个显然就是右按钮
rightView = v;
}
}
return rightView;
}