Ich verwende eine benutzerdefinierte Unterklasse von UIImageView, aber ich kann nicht herausfinden, warum es nicht angezeigt wird.UIImageView-Unterklasse wird nicht angezeigt
The relevant code from my UIImageView subclass:
-(id) initWithImage:(UIImage*)image{
if(self = [super initWithImage:image]){
}
return self;
}
Und von den View-Controller für die Ansicht, dass meine Unterklasse wird die Anzeige wird:
UIImage *zoomRatateSliderHorizontal =
[[UIImage imageNamed:@"ZoomRotate Slider Horizontal.png"]
stretchableImageWithLeftCapWidth:(75.0)/2-1.0 topCapHeight:0];
scaleHorizontalControl = [[ViewTransformationController alloc]
initWithImage:zoomRatateSliderHorizontal];
scaleHorizontalControl.onScreenFrame = CGRectMake(0.0, 5.0,
self.view.frame.size.width,
scaleHorizontalControl.image.size.height);
scaleHorizontalControl.frame = scaleHorizontalControl.onScreenFrame;
scaleHorizontalControl.offScreenFrame = CGRectZero;
[self.view addSubview:scaleHorizontalControl];
Bevor ich Subklassen, ich im View-Controller keine Probleme mit dem folgend hatte:
UIImage *zoomRatateSliderVertical =
[[UIImage imageNamed:@"ZoomRotate Slider Vertical.png"]
stretchableImageWithLeftCapWidth:0 topCapHeight:(75.0)/2-1.0];
scaleOrRatateViewVertical = [[UIImageView alloc]
initWithImage:zoomRatateSliderVertical];
scaleOrRatateViewVertical.frame = CGRectMake(-zoomRatateSliderVertical.size.width,
zoomRatateSliderHorizontal.size.height+5.0+5.0,
zoomRatateSliderVertical.size.width,
465.0 - zoomRatateSliderHorizontal.size.height-10.0-5.0);
[self.view addSubview:scaleOrRatateViewVertical];
Mit Hilfe von Breakpoints habe ich den Rahmen und das Bild überprüft, die in meine Klasse passen, und beide scheinen gültig und erwünscht zu sein.
Alle Ratschläge, was ich falsch mache, würde ich sehr zu schätzen wissen.
Ich bin nicht an benutzerdefinierten Zeichencode interessiert. Der drawRect: in meiner Unterklasse ist leer. –
Wenn Sie kein benutzerdefiniertes Zeichnen durchführen, sollten Sie in Ihrer Unterklasse gar nicht "-drawRect:" haben (es sei denn, Sie rufen super auf). – jbrennan
ah hah! Danke jbrennan. Ihre Antwort verdeutlicht sehr mjhoy. Hinweis für alle Neulinge: Wenn Unterklassen wirklich vorsichtig sein, welche Methoden Sie überschreiben. –