子视图不与superview混合

时间:2013-07-25 06:43:09

标签: iphone uiview

我想在一个场景的导航栏中包含一个搜索栏。

使用此代码,我成功地将搜索栏放在导航栏中。

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(35, 0, 150, 40)];
    self.navigationItem.titleView = titleView;

    UISearchBar *mynewsb = [[UISearchBar alloc] initWithFrame:CGRectMake(0,0,150,40)];

    mynewsb.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
    mynewsb.opaque = NO;

    [self.navigationItem.titleView addSubview:mynewsb];
}

然而,当我运行应用程序时,我明白了。

enter image description here

您可以看到搜索栏的背景仍然可以识别。它没有与titleView混合。顺便说一下,使用故事板添加了两个条形按钮项目。

我试过这些代码但没有成功。

mynewsb.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
mynewsb.opaque = NO;

如何将搜索栏背景很好地与titleView混合?

1 个答案:

答案 0 :(得分:1)

标题栏的高度为44。

所以使用CGRectMake(35,0,150,44)或CGRectMake(0,0,150,44)而不是40。