我正在尝试在自定义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中添加的,并且显示正确。