Sim*_*mon 1 iphone objective-c uinavigationbar uinavigationcontroller uinavigationitem
我们有一个可能从几个地方推出的控制器,因此它的后退按钮可能有几个标题之一.它还有一个弹出另一个控制器的按钮.它们都具有相同的自定义标题元素,但它们的中心位置不同,因为第二个控制器没有后退按钮.我想添加一个垫片来解决这个问题,但我不知道它的宽度.如何获得UINavigationBar中后退按钮的宽度?
您可以随时浏览导航栏的子视图,查找后退按钮视图并在找到它时拾取大小.我在博客上发布了一段时间来迭代UIView的子视图,这里是URL:
http://www.dosomethinghere.com/2011/07/09/logging-the-view-hierarchy/
我在当前应用程序中使用上述URL中描述的InspectView类,当我将此代码插入到导航栏中有后退按钮的视图控制器中时:
- (void)viewDidAppear:(BOOL)animated
{
[InspectView dumpViewToLog:self.navigationController.navigationBar findParent:NO];
}
Run Code Online (Sandbox Code Playgroud)
这是控制台中的结果输出:
2011-09-20 09:11:19.599 MyApp[2070:207]
Inspect view hierarchy -----------------------------------
UINavigationBar (0x6626460): frame origin: (0, 20) size: (320, 44) [tag=0] UIView : UIResponder : NSObject :
. UILabel (0x6613f00): frame origin: (62, 0) size: (200, 44) [tag=0] UIView : UIResponder : NSObject :
. . UILabel (0x6628520): frame origin: (0, 19) size: (200, 20) [tag=0] UIView : UIResponder : NSObject :
. . UILabel (0x665eda0): frame origin: (0, -1) size: (200, 24) [tag=0] UIView : UIResponder : NSObject :
. UINavigationItemButtonView (0x662a5b0): frame origin: (5, 7) size: (49, 30) [tag=0] UINavigationItemView : UIView : UIResponder : NSObject :
End of view hierarchy -----------------------------------
Run Code Online (Sandbox Code Playgroud)
UINavigationItemButtonView是后退按钮,你可以看到49宽,30高的大小.您可以在应用中查找此视图类并记住大小.
请记住,将此代码放入viewDidLoad或viewWillAppear将显示不同的结果.
| 归档时间: |
|
| 查看次数: |
6438 次 |
| 最近记录: |