【发布时间】:2015-04-21 16:19:25
【问题描述】:
我正在从 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 文件的图片
【问题讨论】:
-
那个动画是不是换屏导致的问题?还是在代码的某个地方创建的?
-
请出示代码。
-
我编辑了问题并添加了代码。
标签: ios objective-c iphone interface-builder autolayout