MKAnnotationView leftCalloutAccessoryView Autolayout

时间:2015-10-27 13:05:12

标签: ios autolayout mkannotationview

我正在尝试在自定义leftCalloutAccessoryView中添加自定义视图作为MKAnnotationView。我发现的所有示例都使用图像或在init上指定帧的某种类型的视图。我想在视图中使用autolayout。

这是我在MKAnnotationView的init方法中的代码。我只是想使用简单的宽度和高度限制:

UIView* contentView = [[UIView alloc] init];
contentView.backgroundColor = [UIColor redColor];
contentView.translatesAutoresizingMaskIntoConstraints = NO;

NSLayoutConstraint* height = [NSLayoutConstraint constraintWithItem:contentView
                                                              attribute:NSLayoutAttributeHeight
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:nil
                                                              attribute:NSLayoutAttributeNotAnAttribute
                                                             multiplier:1
                                                               constant:32];

NSLayoutConstraint* width = [NSLayoutConstraint constraintWithItem:contentView
                                                              attribute:NSLayoutAttributeWidth
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:nil
                                                              attribute:NSLayoutAttributeNotAnAttribute
                                                             multiplier:1
                                                               constant:50];

[contentView addConstraints:@[height,width]];
self.leftCalloutAccessoryView = contentView;

我永远无法让视图显示出约束。如果我删除约束并使用框架初始化视图,它将显示出来。我需要做些什么才能使约束与leftCalloutAccessoryView一起使用?

此外,如果我将leftCalloutAccessoryView更改为detailCalloutAccessoryView,这是在iOS 9中添加的,并且显示正确。

0 个答案:

没有答案