[英]Swift, Access parent properties in child class
My problem is I don´t jnow how to access parent properties within the child class 我的问题是我不知道如何访问子类中的父级属性
class imageOverlayRenderer: MKOverlayRenderer {
var bar = self.overlay
}
MKOverlayRenderer should have the property overlay MKOverlayRenderer应该具有属性覆盖
What I really want is to write a custom subclass of MKOverlayRender to render an image, the code in Objective C is: 我真正想要的是编写一个MKOverlayRender的自定义子类来渲染图像,Objective C中的代码是:
#import <MapKit/MapKit.h>
@interface PVParkMapOverlayView : MKOverlayRenderer
- (instancetype)initWithOverlay:(id<MKOverlay>)overlay overlayImage:(UIImage *)overlayImage;
@end
and 和
#import "PVParkMapOverlayView.h"
@interface PVParkMapOverlayView ()
@property (nonatomic, strong) UIImage *overlayImage;
@end
@implementation PVParkMapOverlayView
- (instancetype)initWithOverlay:(id<MKOverlay>)overlay overlayImage:(UIImage *)overlayImage {
self = [super initWithOverlay:overlay];
if (self) {
_overlayImage = overlayImage;
}
return self;
}
- (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context {
CGImageRef imageReference = self.overlayImage.CGImage;
MKMapRect theMapRect = self.overlay.boundingMapRect;
CGRect theRect = [self rectForMapRect:theMapRect];
CGContextScaleCTM(context, 1.0, -1.0);
CGContextTranslateCTM(context, 0.0, -theRect.size.height);
CGContextDrawImage(context, theRect, imageReference);
}
@end
You can't reference self
in a normal property declaration - you have to declare the property lazy
: 您不能在常规属性声明中引用
self
您必须声明属性lazy
:
class imageOverlayRenderer: MKOverlayRenderer {
lazy var bar: MKOverlay! = self.overlay
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.