我正在从NIB文件创建自定义UIView(我的视图将大小设置为iPhone - 4.7英寸)。我想在viewDidLoad
方法中将自定义视图添加到视图控制器。
在iPhone 6上运行时,一切都在模拟器中按预期工作。但是,如果我将设备更改为较小的屏幕(iPhone 5S或iPhone 4),我可以看到动画,因为视图在屏幕上呈现(来自它在NIB文件中的大小到新屏幕约束)。如何在没有该动画的情况下添加视图?
编辑:此处是视图控制器中实例化并添加自定义视图的代码:
- (void)createLaunchScreen {
LaunchScreen *launchScreen = [[LaunchScreen alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview:launchScreen];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self createLaunchScreen];
...
}
我自定义视图中的代码:
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
UIView *view = nil;
NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"LaunchScreen"
owner:self options:nil];
for (id object in objects) {
if ([object isKindOfClass:[UIView class]]) {
view = object;
break;
}
}
[self addSubview:view];
}
return self;
}
- (void)layoutSubviews {
for (UIView *view in self.subviews) {
view.frame = self.bounds;
}
}
这是一张关于我的NIB文件外观的图片
答案 0 :(得分:0)
是因为你两次出现吗?它会自动加载" LaunchScreen.xib"自动显示然后加载自定义视图代码然后调整大小?
我会注释掉你的自定义视图代码,看看图像是否完全没有显示(或者是否存在且没有调整大小)。如果它仍然显示(没有动画)那么问题就在于此。
尝试更改您的"启动屏幕文件"目标设置来自" LaunchScreen"到" Main.Storyboard"