カスタムUIControlを作成していますが、コントロールの一部に画像が含まれていますようお願いいたします。現在、制御がサーバから画像をダウンロードすることができ、そして私は現在、効果なしにのdrawRectでこれをやっている:カスタムUIControl内のサブビューとしてImageViewを追加します。
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;
私は私のコントロールがサブビューとしてImageViewのを追加されていないためであると考えているが、これはUIViewではなくUIControlなので、どうやってやるのか分かりません。
クラスには、次のようになります。
@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;
}
私が今欲しいのが描かれている形状の上に表示されるように私の画像を取得することです。私はスーパークラスをUIButtonの代わりにUIControlに設定しました。これは、ユーザが項目をドラッグしてメニューや何かを表示できるようにするためですが、UIControlはUIButtonが行うことができるすべてを行うことができるはずです。私の挑戦は、描かれた図形の上にイメージをロードすることです。
サブクラスとは何ですか? UIButton?クラス全体を見せてくれますか? – Echizzle
に明確なコードを追加しました – RDSpinz