Pad*_*215 4 objective-c ios nslayoutconstraint
在我的viewDidLoad方法中,我有代码来创建MKMapView,一些约束和一个UIToolbar:
我有一个MKMapView:
MKMapView *mapView = [[MKMapView alloc] init];
[mapView setTranslatesAutoresizingMaskIntoConstraints:NO];
mapView.userInteractionEnabled = TRUE;
mapView.showsUserLocation = TRUE;
mapView.mapType = MKMapTypeHybrid;
mapView.delegate = self;
[mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
[self.view addSubview:mapView];
Run Code Online (Sandbox Code Playgroud)
我创建了2个约束来使其全屏显示:
NSMutableArray *constraints = [NSMutableArray array];
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[mapView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(mapView)]];
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"|[mapView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(mapView)]];
[self.view addConstraints:constraints];
Run Code Online (Sandbox Code Playgroud)
效果很好.但是当我尝试向地图视图添加任何内容时:
UIToolbar *topBar = [[UIToolbar alloc ]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
[topBar setTranslatesAutoresizingMaskIntoConstraints:NO];
topBar.barStyle = UIBarStyleBlackTranslucent;
[mapView addSubview:topBar];
Run Code Online (Sandbox Code Playgroud)
它会抛出一个错误:
*** Assertion failure in -[MKMapView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
2013-01-10 10:24:17.503 Landscout 2[2001:14003] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. MKMapView's implementation of -layoutSubviews needs to call super.'
Run Code Online (Sandbox Code Playgroud)
根据我的理解,由于我要在地图视图中添加新视图,因此地图视图需要重新计算其中的所有约束吗?基本上是一个用于约束的drawRect方法.
我怎样才能解决这个问题?
我通过简单地使用内容视图填充所有内容来解决问题.我没有将工具栏添加到myMapView,而是将其添加到myContentView.
我很确定MKMapView还没有设置为使用约束.MapView不会调用[super layoutSubviews]哪个最终会导致[UIView layoutSubviews].
我想到的另一个可能的解决方案是向MKMapView添加一个类别,它将覆盖-layoutSubview调用[super layoutSubview],但我不知道如何找出[MKMapView layoutSubview]我需要添加的其他内容.
| 归档时间: |
|
| 查看次数: |
2496 次 |
| 最近记录: |