我发现 UIBarButtonItem 框架宽度为 0 的困难方式。谷歌搜索后,我找到了一种遍历导航控制器子视图以查找左栏按钮宽度的方法。它有效,但似乎必须有一种更清洁的方法来做到这一点。
我的应用程序没有理由因为使用这种方法而被拒绝,对吧?
UIView *leftBarButtonView = nil;
for (UIView* v in self.navigationController.navigationBar.subviews) {
if ([[v class].description isEqualToString:@"UINavigationButton"]) {
if (leftBarButtonView==nil) {
if (v.frame.origin.x > 0.0)
leftBarButtonView = v;
} else if (v.frame.origin.x < leftBarButtonView.frame.origin.x && v.frame.origin.x>0.0) {
leftBarButtonView = v; // this view is further right
}
}
}