加载的obj-c nib不遵循约束

时间:2017-08-18 09:26:02

标签: ios objective-c iphone uiview

我有一个视图控制器:MainViewController

在mainViewController中,我添加一个uiview并设置所有约束(0,0,0,0),这意味着它与超级视图的大小相同。

从上面添加的uiview中,我将自定义类设置为我的UIView文件,让我们称之为xMainView

这是我的xMainView代码

//xMainView.h
@interface xMainView : UIView
// all my properties here
@end

//xMainView.m
- (id)initWithFrame:(CGRect)aRect {
if ((self = [super initWithFrame:aRect])) {
    [self commonInit];
}
return self;
}

- (id)initWithCoder:(NSCoder*)coder {
if ((self = [super initWithCoder:coder])) {
    [self commonInit];
}
return self;
}

- (void)commonInit{ 
UIView *mapView = [[[NSBundle mainBundle] loadNibNamed:@"XMapView"
                                                 owner:self
                                               options:nil] objectAtIndex:0];

mapView.frame = self.bounds;
mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | 
UIViewAutoresizingFlexibleHeight;

[self addSubview: mapView];
}

- (void) loadMap:(NSArray *)results {
self.passedResults = results;

[self commonInit];
[self updateUserCurrentLocation];
[self zoomingToDevice];
}
在xMapView.xib(storyboard)中的

我添加了另一个设置在视图底部的ui视图。我把这个观点的约束如下:

trailing : 0
bottom : 0
leading : 0
height : 300

在我的MainViewController中,这就是我调用xMainView

的方式
//the mapStoreView is the view from the MainViewController. I outlet it and name it as mapStoreView
- (void)viewDidLoad {
[super viewDidLoad];
[self.mapStoreView loadMap:nil];
}
// I have tried to put it in viewWillAppear, viewDidAppear, same results

Iphone 7+ Iphone 5

然而,来自xMapView的视图似乎从屏幕底部开始。我已经把所有约束都很好了。最奇怪的是,它使用iphone 7plus运行正常。其他设备,将有底部偏移屏幕问题。

我一直在寻找提示,但却找不到任何提示。它真的让我很沮丧。也许有人知道这是什么问题?

感谢

0 个答案:

没有答案