我想在每个视图的顶部显示我的应用徽标图片。但我想在一个视图中创建它一次,在每个视图中显示它,如ASP.net中的母版页。请有人帮助我。
答案 0 :(得分:3)
创建UIViewController的子类,并在viewDidLoad方法中,获取并将图像放在您想要的位置:
·H
@interface MyLogoViewController : UIViewController
// your interface
@end
的.m
@implementation MyLogoViewController
- (void) viewDidLoad {
UIImage* image = [UIImage imageNamed:@"image.png"];
UIImageView* imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame.origin.x = // whatever you want
imageView.frame.origin.y = // whatever you want
[self.view addSubview:imageView];
[self.view bringSubviewToFront:imageView];
[imageView release];
}
@end
然后,对于任何一个控制视图的视图控制器,您希望显示该图像应该继承该子视图控制器而不是UIViewController。
@interface MyNewViewController : MyLogoViewController {
// your interface
}
@end
这样,图像自动显示,无需做任何特别的事情。
如果您计划在视图控制器中以编程方式添加子视图,则将imageView
的引用保存到MyLogoViewController
类作为成员var(而不是仅仅动态创建/释放它),因此如果需要,您可以将新视图放在现有徽标后面。
答案 1 :(得分:1)
您可以将该图像放在main.window中。这样你就可以在每个视图中看到哪些视图具有主窗口的子视图。但您需要根据主窗口中固定的图像大小修复所有视图大小。足够了。
答案 2 :(得分:1)
您还可以将图像添加到窗口并修复视图的大小,然后您可以在子视图中看到
答案 3 :(得分:1)
你可以在窗口中添加该视图,并在该窗口图像下方添加其他视图。所以你可以在每一页中看到它。
答案 4 :(得分:0)
为图像创建一个模态类,并从每个控制器的viewDidLoad调用它。