如何创build基于nib文件的UINavigationItem.TitleView?
我有一个UINavigationController bassed序列的屏幕。 在其中一个屏幕上,我想用一个自定义的TitleViewreplace标准的标题。 自定义视图将使用一个nib文件创build,并具有一个图像和多个标签。
我是否创build了一个UIViewController w /关联的nib文件,加载nib,并将.view属性分配给TitleView? 基本上,我如何使用一个笔尖,我可以布局必要的元素,然后将结果视图分配给TitleView属性?
考虑使用UINib – 它是在iOS 4.0中公开的。 它为你的笔尖caching了两倍的性能。
UINib *nib = [UINib nibWithNibName:@"TestView" bundle:nil]; UIView *myView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0]];
objectAtIndex引用NIB中的顶级视图 – 通常有一个(索引0),但是如果有很多,您需要提供索引。
一旦你有了视图,你可以把它分配给navigationItem titleView
self.navigationItem.titleView = myView; [myview release];
编辑:
如果您需要访问NIB中的单个控件,请将标记放置在其上,并通过viewWithTag访问它们。 看这里:
http://useyourloaf.com/blog/2011/2/28/speeding-up-table-view-cell-loading-with-uinib.html
在Interface Builder中创build自定义视图并将其加载到视图(或者,您可以创build一个IBOutlet iVar来指向该视图)。 然后只需将titleView
设置为您的自定义视图。
UIView * customTitleView = [[[NSBundle mainBundle] loadNibNamed:@"TitleView" owner:self options:nil] lastObject]; self.navigationItem.titleView = customTitleView; [customTitleView release];