我想用常规文本字段更改 navigationBar 的 titleView。然后我想设置 textField 的大小来填充旧的“正常”titleView。
我似乎无法在故事板中做到这一点。将文本字段拖到导航标题视图所在的位置不起作用。
所以我在
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
PO(self.navigationItem.titleView);
CGRect theFrame= self.navigationItem.titleView.frame;
self.navigationItem.titleView=self.searchBar;
//self.searchBar.frame = theFrame;
while (false);
...
它正在使用一个缓存。该 PO 是一个打印对象内容的宏。结果在 viewDidAppear,self.navigationItem.titleView 为空。
所以虽然我可以显示搜索栏,但我不能让搜索栏“填充”它的空间,因为我不知道空间是什么。
我不喜欢硬编码,因为你知道,未来可能会发生变化。
所以我该怎么做?
我曾经看过代码,而不是设置 self.navigationItem.titleView,您只需向其中添加子视图。即使在 viewDidAppear、self.navigationItem.titleView 上,这种方法的问题也是 0。
我添加了这些代码:
CGRect theFrame= self.navigationItem.titleView.frame;
CGRect theFrame2 = self.searchBar.frame;
CGRect theFrame3 = self.navigationController.navigationItem.titleView.frame;
而且,我不知道如何nslog结构值,但是,theFrame和theFrame3都是0