我想logo UIView
在应用程序运行时始终显示在最前面,我知道有一种方法可以做到这一点,将相同的添加UIView
到每个UIViewController
,但我认为这不是最好的方法。当我有很多页面并修改时logo UIView
,必须每页都修改它。
有人有更好的方法吗?谢谢。
看起来像这样:
我想logo UIView
在应用程序运行时始终显示在最前面,我知道有一种方法可以做到这一点,将相同的添加UIView
到每个UIViewController
,但我认为这不是最好的方法。当我有很多页面并修改时logo UIView
,必须每页都修改它。
有人有更好的方法吗?谢谢。
看起来像这样:
由于每个应用程序只有一个窗口,并且视图没有级别,因此无论如何您都必须确保视图保持在层次结构的顶部。一种相对简单的方法是将其直接添加到界面其余部分(导航控制器)上方的窗口中:
在applicationDidLaunch:
// After the main navigation controller or tab controller has been added
// either programmatically or in the xib:
UIImage *logo = [UIImage imageNamed:@"logo.png"];
UIImageView *logoView = [[UIImageView alloc] initWithImage:logo];
[self.window addSubview:logoView];
实际上,我认为 (a) 创建一个 UIView 的子类来显示您的徽标并在其中包含所有必要的设置,然后 (b) 将此子类添加到每个视图控制器是最干净和最易于管理的方法。
与将视图添加到窗口相比,我更喜欢这种方法的原因是,如果您有一个不想显示徽标的视图,则不需要显示和隐藏您添加到窗口的内容。此外,根据我的经验,直接添加到窗口可能会在某些 iOS 设备上造成旋转挑战,具体取决于您在做什么。
此外,为了确保您的徽标视图始终位于视图层次结构的顶部,您可以做两件事:
如果视图已经存在,您可以使用[UIView bringSubviewToFront:]
[myParentView bringSubviewToFront:myLogoSubview];
如果您正在创建视图,当您添加它时它将位于顶部[UIView addSubview:]
// Set up myLogoSubview first here with alloc+init, etc.
[myParentView addSubview:myLogoSubview];`
在您的图像中看起来您将替换myParentView
为您希望保持在顶部self.view
的myLogoSubview
视图,但这只是我基于您的图像的假设。