我面临着奇怪的问题。我有一个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;
}
答案 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];