Objective c 另一个自定义UIView子类

Objective c 另一个自定义UIView子类,objective-c,ios,uiview,uiimageview,custom-view,Objective C,Ios,Uiview,Uiimageview,Custom View,我想通过对UIView进行子类化来创建一个自定义类,该类看起来如下: 哦,文字上说身体视图应该是80像素高,50像素高。 但我似乎做不好。我已经准备好了类标题,如下所示: #import <UIKit/UIKit.h> @interface MessageView : UIView @property (strong, nonatomic)UIImage *backgroundImage; @property (strong, nonatomic)UITextView *mes

我想通过对
UIView
进行子类化来创建一个自定义类,该类看起来如下:

哦,文字上说身体视图应该是80像素高,50像素高。
但我似乎做不好。我已经准备好了类标题,如下所示:

#import <UIKit/UIKit.h>

@interface MessageView : UIView

@property (strong, nonatomic)UIImage *backgroundImage;
@property (strong, nonatomic)UITextView *messageView;
@property (strong, nonatomic)UILabel *titleLabel;

- (id)initWithBackgroundImage:(NSString*)background;

- (void)setTitle:(NSString*)titleMessage;
- (void)setBody:(NSString*)bodyMessage;

@end
但什么也没发生。完成后,我将通过setter方法设置文本。我想通过
setCenter(x,y)
设置最终视图上的位置。我希望这个班有固定的宽度和高度

谢谢

编辑:

   - (id)initWithBackgroundImage:(NSString*)background
    {
        self = [super init];//[super initWithFrame:CGRectMake(0, 0, 270, 100)];
        if (self)
        {
            UIImageView *bg  = [[UIImageView alloc] initWithImage:[UIImage imageNamed:background]];      
            messageView = [[UITextView alloc] initWithFrame:CGRectMake(10, 40, 250, 50)];
            titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 250, 20)];
            [self addSubview:bg];
            [bg release];
            [self addSubview:messageView];
            [messageView release];
            [self addSubview:titleLabel];
            [titleLabel release];
        }
        return self;
}

使用
[[MessageView alloc]initWithBackgroundImage:@“message_red”]它与日志一起崩溃:
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIImage superview]:未识别的选择器已发送到实例0x1dda7420'
Sweet,它现在正在工作。我只是忘记了“添加子视图”。我可以问一下我为什么要释放我的财产吗?如何编辑它们?@property(retain,非原子)UILabel*titleLabel;-在这里您添加1个指向属性的链接;titleLabel=[[UILabel alloc]initWithFrame:CGRectMake(10,10250,20)];-在这里您添加第二个链接。[标题标签释放];-现在你有了1个链接。不是吗?:)
   - (id)initWithBackgroundImage:(NSString*)background
    {
        self = [super init];//[super initWithFrame:CGRectMake(0, 0, 270, 100)];
        if (self)
        {
            UIImageView *bg  = [[UIImageView alloc] initWithImage:[UIImage imageNamed:background]];      
            messageView = [[UITextView alloc] initWithFrame:CGRectMake(10, 40, 250, 50)];
            titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 250, 20)];
            [self addSubview:bg];
            [bg release];
            [self addSubview:messageView];
            [messageView release];
            [self addSubview:titleLabel];
            [titleLabel release];
        }
        return self;
}