Ich mache eine benutzerdefinierte UIControl, und ich möchte, dass ein Teil der Kontrolle ein Bild enthält. Derzeit ist die Steuerung in der Lage, das Bild vom Server herunterzuladen, und ich bin derzeit dies keine Wirkung in drawRect tun:ImageView als Unteransicht innerhalb einer benutzerdefinierten UIControl hinzufügen
NSURL *url = [NSURL URLWithString:self.imageData];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.bounds];
imageView.image = image;
Ich glaube, das liegt daran, dass meine Kontrolle ist nicht die Imageview als Subview hinzufügen, aber Ich weiß nicht, wie das geht, da dies UIControl und nicht UIView ist.
Die Klasse sieht wie folgt aus:
@interface RDWebButton : UIControl
/** The color of the button*/
@property (nonatomic) IBInspectable UIColor *buttonColor;
#if TARGET_INTERFACE_BUILDER
@property (nonatomic) IBInspectable NSInteger buttonShape;
#else
@property (nonatomic) RDShape buttonShape;
#endif
@end
- (void)drawRect:(CGRect)rect {
// do drawing
NSLog(@"drawRect...");
self.backgroundColor = [UIColor clearColor];
[self.buttonColor setFill];
switch (self.buttonShape) {
case RDShapeSquare: {
UIBezierPath *path = [UIBezierPath bezierPathWithRect:rect];
[path fill];
break;
}
case RDShapeRoundedRect: {
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:10];
[path fill];
break;
}
case RDShapeCircle: {
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:rect];
[path fill];
break;
}
}
NSURL *url = [NSURL URLWithString:self.imageData];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.bounds];
imageView.image = image;
}
Alles, was ich jetzt will, ist mein Bild zu erhalten über die Form zu erscheinen, die gezogen wird. Ich setze die Oberklasse als UIControl anstelle von UIButton, weil ich dies ändern möchte, damit der Benutzer das Element ziehen kann, um ein Menü oder etwas zu enthüllen, aber ich bin ziemlich sicher, dass UIControl alles tun kann, was UIButton kann und mehr. Meine Herausforderung besteht darin, das Bild über die gezeichnete Form zu laden.
Was ist eine Unterklasse von? UIB-Taste? Kannst du uns die ganze Klasse zeigen? – Echizzle
hinzugefügt einen Code zur Klärung – RDSpinz