隐藏在iPhone中我的BaseViewController后面的按钮

时间:2013-04-18 10:48:50

标签: iphone uiimageview uibutton

我面临着奇怪的问题。我有一个baseViewController,它使用UIViewController进行扩展。 在我的BaseView控制器中,我有一个自定义的HeaderBar(UIImageView)。

然后我创建了一个新的ViewController并使用baseViewController扩展了新的ViewController。 BaseViewController中的headerBar出现在我的UIViewController上。但是现在如果我在我的NEWViewController中添加任何子视图而不是那个headerBar,那么它就不会超过它,而它会落在标题栏的后面。

任何人都可以建议做什么。

EDITED

这是我的代码。

BASEViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
CGFloat xOffset = 0;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    xOffset = 224;
}

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization

   headerBarView = [self addHeaderBar];
    //[self.view addSubview:headerBarView];
    [self.view insertSubview:headerBarView belowSubview:self.view];

}

return self;
}
-(UIView *)addHeaderBar{

UIView *header_bar = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 50.0)];

//HeaderBar Image
UIImageView *headerBar = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0.0, 320, 50.0)];
[headerBar setImage:[UIImage imageNamed:@"top_bar"]];
[header_bar addSubview:headerBar];
return header_bar;
}

使用BaseViewController扩展的NEWViewController

  //Back Button
back =  [UI getActionBarButtonWithName:[NSString stringWithFormat:@"Back"] andCGRect:CGRectMake(7.0, 100.0, 55.0, 31.0) andEdgeInset:UIEdgeInsetsMake(0.0, 9.0, 2.0, 0.0) withBackGround:[UIImage imageNamed:@"back_button"]]; 
   [self.view bringSubviewToFront:back];

+(UIButton *)getActionBarButtonWithName:(NSString *)name andCGRect:(CGRect)rect andEdgeInset:(UIEdgeInsets)edgeInset withBackGround:(UIImage *)background{

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = rect;
[button setBackgroundImage:background forState:UIControlStateNormal];
[button setTitleEdgeInsets:edgeInset];
[button setTitle:name forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont boldSystemFontOfSize:13.0]];
[button setUserInteractionEnabled:YES];

return button;
}

3 个答案:

答案 0 :(得分:0)

如果你有很多观点,你也可以使用其中任何一个 -

[self.view insertSubview:<#(UIView *)#> aboveSubview:<#(UIView *)#>]
[self.view insertSubview:<#(UIView *)#> atIndex:<#(NSInteger)#>]
[self.view insertSubview:<#(UIView *)#> belowSubview:<#(UIView *)#>]
希望它会对你有所帮助。

答案 1 :(得分:0)

尝试使用

[self.view bringSubviewToFront:button];

答案 2 :(得分:0)

New UIVIew覆盖基本视图控制器,您可以设置新视图的框架,然后添加子视图。

实施例。 UIView * tempView = [UIView alloc] initWithFrame:CGRectMake(0,44,320,420)]; [self.view addSubView:temView];